- 博客(29)
- 收藏
- 关注
原创 前端学习-盒子浮动(float)
可以看出这个粉色的盒子置于上层,灰色的盒子置于正常的页面层。看起来就像是粉色盒子浮起来了一样。2,脱离标准普通流的控制,移动到了指定位置(俗称脱标)直接上代码(全部复制到你的编译器即可运行)然后我们再介绍一下浮动的特性(重要)1,浮动的盒子不再保留原先的位置。
2024-03-13 22:24:04
431
原创 前端学习-盒子阴影(box-shadow)
同学们也可以鼠标点击右键 ->检查->然后在弹出的页面修改相应的数值,记得点击保存才能看到修改后的页面。这样能更直观的看到效果的变化!最后我们在上图的基础上修改一下这些数值,看看会发生什么变化吧!先上代码(直接复制到你的编译器即可运行)然后我来解释一下这四个值分别代表什么意思。这是我修改后的数值👇。
2024-03-12 21:35:36
660
原创 前端学习-border-radius(圆角边框)
图中的四个圆处在四个角的地方。四个圆的半径都是10px。然后只要把红色线描出来的地方作为这个框的四个角即可。先看代码,这里我以div标签为例。再解释一下,10px代表的意思👇。
2024-03-12 20:59:35
501
原创 贪心-最优分解问题
这道题最开始我的想法是分成两个中间值,就像周长固定,面积想要取最大那类问题一样。但是这个题明确说明了可以分成多个数,所以我的那种想法就不适用了。从2开始分,依次分成2,3,4,5,6还剩下1不够分了,就把这个1加到2上,最后分成「3,3,4,5,6」现在要求将 n 分解为若干个互不相同的自然数的和,且使这些自然数的乘积最大。也就是把剩下的不够分的加到了第一个因子上,如果剩下的很多,就依次分给从前到后的因子。对于给定的正整数 n,编程计算最优分解方案。结果输出:将计算的最大乘积输出到屏幕。
2023-06-18 16:28:43
303
原创 算法-背包问题
观察递推公式不难发现, 数组中第 i 个物品是否放入是在第i-1件物品的基础上进行操作的,也就是说第 i 个方案是由第 i-1 个方案得来的。如果 j 从小到大遍历,那么会先更新 f [ j ] 再更新 f [ j + v [ i ] ] ,这就导致在更新 f [ j + v [ i ] ] 时使用的是第 i 行的 f[ j ] 而非第 i − 1 行的 f [ j ] ,所以不能让j从小到大遍历,让j从大到小遍历就可以解决这个问题。第 i件物品的体积是 vi,价值是 wi。
2023-06-18 15:15:47
151
原创 c++ 继承
举个例子。一个父类Animal,两个子类cat和dog。以下是代码实现。有图可以看出,我们实例化的cat类的对象c继承了Animal的成员。但是我们不能继承被保护的成员“age”。“age”虽然在c中可见,但是不可用。也就是不可修改。从基类创建派生类时,可以使用不同的访问说明符来继承基类的数据成员。这些可以是public, protected 或 private.。在上面的实例中,基类Animal被dog公开地继承了。还是刚才的例子,我门这次实现private和protected继承我们几乎不使
2022-12-07 22:29:16
506
1
原创 【蓝桥杯】饮料换购+最大降雨量+答疑
1,让我印象深刻的是【答疑】那道题,我的思想是用传统的数组存储数据,然后再重新定义一个新的time,计算前两个时间的和,然后再排序,这样做的问题是,拍完续后我不能确定是那个同学的time最多,这样做很麻烦,前面我提供的题解是在评论区看到别人的答案,他的用结构体存储数据的方法很神奇,以后在其他的题解中也可以用。2,【最大降雨量】中,我最先想到的是vector,但是vector中没有头删,后来我换成了deque。stl中的vector,deque很常用,需要记住他们各自的特点,利用他们的优点。
2022-12-02 21:08:06
835
原创 【计算机网络】第二章-物理层
由于计算机只能识别二进制数字,然后把这个二进制数据转换成正电或者负电,这个电流的正负就是数据的电磁表示,也就是一条信号。长波和中波具有较强的绕射能力,主要沿着地球表面传播,而且不容易被建筑物遮挡,但通信带宽太低,用于特殊通信场景。例如,语音,文字图像都是消息,数据是运送消息的实体。码元传输的速率越高,信号传输的距离越远,噪声干扰越大,或传输媒体质量越差,失真就会越严重。W是信道带宽,单位是赫兹,波特是码元传输速率的单位,1波特是每秒传送一个码元。通信的双方都可以发送信息,但是不能同时发送,也不能同时接收。
2022-11-30 12:17:33
467
原创 C++之适配器(以优先队列为例)
以下是我在百度上看到的一句话。Adapter是一种重用代码的方式,当我们实现了一个concept,但在开发过程中发现需要另外一个concept,而刚好新的concept是老的concept的子集,那么我们可以限制老的concept的功能,使它适合我们的新concept,我们称这个过程为适配(Adapt)。对于这句话,我的理解如下。利用已经存在的东西组合或者限制实现一个新的东西,这个新的东西具有某种新的性质,但是他的底层是由已经存在的东西实现的。
2022-11-16 22:36:20
1276
1
原创 STL之list模拟实现(内含图解)
这里我举个例子,我给迭代器取名叫it,我们的主要任务就是让他像指针一样,可以加减,解引用,判断两个“指针”是否相等。这篇博客字数有限,有很多细节我没有写,比如什么是self,ptr,ref,为什么要传引用,为什么传指针。假设有一种情况,先创建了一个lt,但是在调用了clear函数之后,所有的数据都被清空了,又想接着操作,那怎么办呢?红色框起来的就是一个节点,可以看出,他是由三部分组成的,从图里就能看出一切了,我就不多废话,直接看代码。拿到节点的值得地址,因为返回的是一个地址,所以要用指针接收。
2022-11-10 19:31:10
634
1
原创 STL之vector模拟实现
vector的中文意思是向量,他可以容纳很多类型的数据,因此vector也被称为容器。看到前面的解释可能你一脸蒙逼,下面我给出两种简单的理解。可以把vector理解为是一个可以动态增长的数组,一个数组可以存储多个相同类型的数据。也可以理解成是一个顺序表,里面可以存储不同类型的数据其实这两种说法本质都是一样的,因为顺序表就是用数组实现的。vector是c++的一个类,他像前面我介绍过的string类(没看过的同学看这里:)一样,有public函数,也有private成员。
2022-10-29 22:59:45
719
原创 STL之string模拟实现(内含图解)
首先说明一下,string是c++中的类,他有很多接口函数,string类和所有的类一样,有public的函数,也有private的成员,当我们调用string的子函数时, 这里我先把private的成员给出来,所有的函数都是为了让成员使用而创造的。下面介绍string的成员_str:一个字符串_capacity:用来记录容量_size:用来记录字符串的字符个数npos:这是一个数字,代表string的最大值,大概有四亿九千万。在一些函数中如果不给参数,就用npos作为缺省值。
2022-10-19 22:41:09
537
4
原创 c++ 模板(template)
当调用这样的模板函数时类型T就会被被调用时的类型所代替,比如swap(a,b)其中a和b是int型,这时模板函数swap中的形参T就会被int 所代替,模板函数就变为swap(int &a, int&b)。而当swap(c,d)其中c和d是double类型时,模板函数会被替换为swap(double &a, double&b),这样就实现了函数的实现与类型无关的代码。
2022-10-06 22:52:45
343
原创 C++ 入门基础
如果函数返回时,出了函数作用域,如果返回对象还在(还没有还给系统),就可以使用引用返回,如果不在了(已经还给系统了),必须传值返回。否则可能出现越界的问题。以inline修饰的函数是内联函数,编译器会在调用内联函数的地方展开,没有函数调用时建立栈帧的开销,内联函数可以提高程序运行的效率。但是内联函数也不是万能的,它以空间换时间,如果函数的代码量很大,使用内联会让总代码量增大,消耗更多的内存空间。缺省函数的缺省值是自定义的,这里我定义的缺省值是0,如果我没有给这个函数传值,他就会输出我设置的缺省值。
2022-09-25 17:20:28
255
原创 数据结构-排序专题(选择、插入、希尔、冒泡、堆、快速、归并、计数)
3,(选最右边的数是key)left先走,在走的过程中,如果遇到比key大的数,就停下来,right再走,right遇到比key小的数就停下来,然后交换left和right的值,交换后两个指针继续走,直到left和right相遇。3,(选最右边的数是key)cur遇到比key大的停下,prev++,然后交换prev和cur的值,然后cur继续走,直到cur走到倒数第二个数,循环停止,prev++,交换prev和key。1,选出一个key,一般是最左边或者最右边,此时key的位置就形成了一个坑。
2022-09-03 10:59:32
341
1
原创 数据结构-C语言实现堆(超长超详细)
堆(Heap)是计算机科学中一类特殊的数据结构,是最高效的优先级队列。堆通常是一个可以被看做一棵完全二叉树的数组对象。
2022-08-20 11:17:15
1596
1
原创 数据结构-C语言实现队列进队、出队等基本操作(内含图解)
插入:先开辟新的结点,把数据放进去,并且让新的结点的next指向null,再让原来的tail指向新的结点。删除:先定义一个指针,指向原来的head的next,再删除head,然后更新head,让新的head指向刚刚定义的指针。注意:每次删除都要判断队列是否为空每次调用函数的时候都要断言传进来的结构体不为空。...
2022-08-16 13:57:59
7193
1
原创 数据结构-c语言实现带头循环双链表增、删、查、改等基本操作(超长超详细)
链表的结构体中存储了两个指针,一个指向前驱节点,另一个指向后继节点。插入或者删除的时候一定要记得断言,否则可能会出现错误,但是找不到哪里出错。双链表是在顺序表的基础上更新的一种存储结构,他的优点是:在任意位置插入效率高,并且按需申请空间,不会造成空间浪费。...
2022-08-13 21:15:06
557
原创 数据结构—C语言实现顺序表(头插、尾插、头删、尾删)
初始化函数命名:SeqListInit解释一下为什么叫这个名字:Seq->顺序,List->表,Init->初始化。这些字母都是对应的单词的首字母,方便看懂。初始化就是给一个顺序表赋值,只不过是赋值为0。这就好像你定义一个变量随手就写出(int a=0;)一样。顺序表的本质是一个结构体,里面有多个不同的成员,这些成员分别是:a->一个数组(你也可以理解为一个指针),size->记录顺序表里有多少个元素,也叫计数,capacit->顺序表有多大空间。...
2022-08-07 23:28:41
2574
2
原创 C语言实现二分法查找某个数字(超详细)
二分法,顾名思义,就是把数组分成两部分,每次都分成两部分,这样一下子就能缩小一半的范围。让我猜多少钱,那我肯定会先猜10元,然后你说猜低了,那我就会再猜15元,这时你又说猜高了,那我就会猜12元,然后再问几次,这时就可以猜出饮料的价格了。在一个有序数组中,查找某一个数字,如果能找到,则输出它的下标,如果找不到,输出该数字不存在。在图里可以发现,范围是一半的在缩小,二分法也是这样的原理。粉色的数字⭕️1,代表第一次猜的价格,粉色的数字⭕️2,代表第二次猜的价格,粉色的数字⭕️3,代表第三次猜的价格,...
2022-07-17 21:55:42
3477
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人