- 博客(5)
- 收藏
- 关注
原创 算法:背包问题(01,完全,多重)
背包问题是动态规划的一种,通常用来解决“如何选择才能让价值更大的问题”。背包问题有很多种,包括但不限于“0/1”背包、完全背包、多重背包······,作为动态规划中的一种,背包问题的代码写起来十分容易,但理解起来却不简单。
2025-02-07 16:35:25
1201
原创 全排列算法(递归)
但是,有一个问题,就是我该如何判定这个数用没用过,为了判断这个数,我们需要用一个tof数组(ture or false)来进行标记,也就是初始化一个tof数组,同时,我还需要初始化另一个数组ans[]来存储已经标记好的数。对于这类题,我们很直接了当的就知道可以用暴力枚举去完成算法,具体做法就是从1~3中任选一个数放在第一位,之后再从剩余的两个里面任选一个放在第二位,最后一个放在最后一位。:也叫递归函数,是递归算法的主体,它的作用就是不断调用自己,通过取不同的值来达到我们所需要的结果;(剩余部分不予展示)
2024-10-02 23:41:02
766
原创 C++:List容器
List容器是用来构造一个链表的,而且构造的链表是双向的(即val数据域,next指针和prve指针)。用List构造的链表有一个虚拟头节点,并且链表最后一个结点的next指针指向虚拟头节点,虚拟头节点的prve指针指向最后一个结点,也就是循环双向链表。List中还有两个迭代器,即begin()和end(),例如List l;l.begin()就是虚拟头节点,而l.end()就是尾结点。
2024-09-04 20:32:39
830
原创 如何解决C++链表中无法用new来创建结点的问题
然后你就发现他new出来了一个链表结点,但是,大家仔细看一下new后面的Listnode(),是不是很像一个函数,这个就是我们要写的构造函数,它的目的是将新构造的结点的val初始化为0,next为NULL(有的代码会写nullptr,本质上和NULL是一样的,null是空的意思,ptr是指针的意思,nullptr就是空指针的意思),也就是。先看第一个,有了上面的经验,我们很容易就能想到传进一个数来,把这个数赋值给val就行了,也就是。这样,我们再new一个结点,就能够new出来了!其中val是这个链表的。
2024-08-08 21:00:04
564
原创 力扣:LCR 024.反转链表
①②解释:例如1 2 3 4 5 ,我们传入reversList函数后,2 3 4 5 逆置变为 5 4 3 2 ,此时5就是newHead的头结点,而我们需要将原来的头结点head放到newHead的最后面,也就是2的后面,此时2在原结点中还是head->next,那么head->next->next=head就将head移到最后了,但移动后最后结点的后续不为空,所以我们用head->next=NULL将newHead最后置为空。你能否用两种方法解决这道题?,请反转链表,并返回反转后的链表的头节点。
2024-07-12 14:13:16
444
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人