- 博客(32)
- 收藏
- 关注
原创 代码随想录第十九天|动态规划(3)
今天其实有两个新知识,一个是在完全背包中与01背包不同的是,内层循环的循环不同,完全背包是要从容量小到大遍历,以多次取物品进去。第二个是完全背包中,排列和组合问题,组合问题就是先物品后容量,排列问题就是先容量后物品。
2024-08-03 15:26:25 570
原创 代码随想录第十八天|动态规划(2)
LeetCode 1049. 最后一块石头的重量 II思想:本题跟上题十分相似,可以借助上一题的想法,两块石头互相比,那么就可以更改为找出两个总和差不多的子集合,然后作差,得到最小的可能重量。思想跟上题差不多就不过多赘述了。这里注意还是dp数组的大小取舍。i++) {j--) {时间复杂度:O(n^2),空间复杂度:O(n)。动态规划中的01背包问题,最最最最最最主要的就是要把问题抽象成01背包问题,什么是背包,什么是物品,物品的重量是什么,物品的价值又是什么。之后就好做了。
2024-08-02 16:57:53 822
原创 代码随想录第十二天|二叉树(5)
思想:本题的意思其实是,将一个二叉搜索树转化为升序数组的话,例如[1,2,3],其对应的累加树序列就是,每个数加其本身以及大于本身的元素,即[6,5,1]。那这样的就是每个数加其本身以及后面的数。思想:本题其实比较简单,首先就是遍历整棵树,遇到节点的值如果不在所要求的区间范围内的话,就进行以下处理;如果节点值大于右边界,就返回当前节点的左节点;反之就返回当前节点的右节点。思想:其实本题特别像之前的一道根据前中序序列构造二叉树,大体上与其十分相似,只是确定root节点的时候,取数组最中间的元素即可。
2024-07-16 14:51:27 373
原创 代码随想录第十一天|二叉树(4)
这几天学习到了一个新的知识点,就是遍历二叉树的方式。这种遍历方式一般用于遍历二叉树的边。这种遍历方式一般用于遍历整个二叉树。如果需要搜索整棵二叉树且不用处理递归返回值,递归函数就不要返回值。如果需要搜索整棵二叉树且需要处理递归返回值,递归函数就需要返回值。如果要搜索其中一条符合条件的路径,那么递归一定需要返回值,因为遇到符合条件的路径了就要及时返回。
2024-07-15 22:03:37 966
原创 代码随想录第六天|字符串
字符串的操作应该是我本科四年练的最多的,所以做起来比较得心应手,比较简单,包括这几题都是在反转的基础上而来的,思想差不多都一致。
2024-07-09 22:08:48 947
原创 代码随想录第五天|哈希表(2)
哈希表两天的练习下来,感觉特别灵活也比较固定。灵活是需要的逻辑比较多,固定就是哈希表要做的事情比较固定,一般就是用来查找的。
2024-07-08 21:52:11 779
原创 代码随想录第四天|哈希表(1)
哈希表主要运用来判断是否有重复元素或降低查找效率的。不过,在面试的时候一般不会询问怎么用哈希表,而是提问哈希表的底层运行逻辑问题,例如红黑树等。后续还得深入。
2024-07-06 22:09:43 634
原创 代码随想录第二天|链表(1)
其实今天也做了另一题LeetCode 707. 设计链表。可我一直报错,应该是编译器在执行的时候,在循环的时候链表采取了cur=cur->next;类似操作的时候需要判断cur这个结点是否为空,不然是不会让你编译成功的。换言之,就是while循环的判断语句中需要加上while (cur!= NULL)这一项;其次,新学到了虚拟头结点这个知识,通常在链表的增删改操作中运用会有奇效。查这一操作的话,可以不采用。
2024-07-04 22:17:12 855
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人