自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 第十七天打卡——子序列问题

布尔类型的dp[i][j]:表示以下标i开始,以下标j结束的字符串[i,j]是否回文.如果是 dp[i][j]为true,否则为false。判断一个子字符串(字符串的下表范围[i,j])是否回文,依赖于子字符串(下表范围[i + 1, j - 1]) 是否是回文.情况三是根据dp[i + 1][j - 1]是否为true,在对dp[i][j]进行赋值true的。当s[i]与s[j]不相等,dp[i][j]一定是false。dp[i + 1][j - 1] 在 dp[i][j]的。516.最长回文子序列。

2023-10-11 09:43:01 55 1

原创 第十六天打卡——打家劫舍、股票

198.打家劫舍套用动态规划五部曲,递推公式很好想,一刷ac1、明确dp数组的含义和下标dp[ i ]:长度为 i 的数组可偷窃的最高金额为 dp[i]。2、确定递推公式3、初始化dp数组dp[0] = 0;4、明确遍历顺序从前向后5、打印dp数组(debug验证用)213.打家劫舍II上一题的变型,分讨论两种情况下分别调用正常的打家劫舍逻辑方法就可以,结果取二者中的较大值。337.打家劫舍III。

2023-08-27 19:16:27 74 1

原创 第十五天打卡——背包问题

背包问题所以背包问题的理论基础重中之重是理解01背包问题。有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i]。,求解将哪些物品装入背包里物品价值总和最大。举个例子,背包最大重量为4。问背包能背的物品最大价值是多少?

2023-08-26 23:23:40 81

原创 第十四天打卡——动态规划

1、明确dp数组的含义和下标dp[i]:下标为i(第i+1个数)的斐波那契数值为dp[i]。2、确定递推公式3、初始化dp数组dp[0] = 0;dp[1] = 14、明确遍历顺序从前向后5、打印dp数组(debug验证用)dp[ i ]:需要爬 i 阶才能到楼顶,这 i 阶有 dp[ i ] 种方式可以爬到楼顶关键!首先是dp[i - 1],上i-1层楼梯,有dp[i - 1]种方法,那么再一步跳一个台阶就是dp[i]了。

2023-08-24 23:32:06 83 1

原创 第十三天打卡——贪心

从前向后排,k值即位当前元素的在数组中的下标位置,后面遇到相同k值时,后面的元素插入到该下标处,之前插入的元素后移。1、先按照身高维度来排序,从大到小排(身高相同的话则k小的站前面),身高相同的情况下,k值小的排在前。还是java语法不熟!这里用到了LinkedList链表,不受索引下标的限制,且增删方便。在于找到重建队列的两个维度,先确定一个维度,再确定另一个维度。找到组成重叠区间的多个气球数组中的最小右边界,在此坐标射箭。3、遍历结束,如果首位为0,从列表中去除。当气球出现重叠,一起射,所用弓箭最少。

2023-08-22 19:20:00 53 1

原创 第十二天打卡——贪心

45.跳跃游戏II本题相对于。

2023-08-21 23:01:28 49 1

原创 第十一天打卡——回溯

如果used=false且单个行程的第一个地点和当前pathString路径最后一个地点一致,递归并回溯。由于子集问题也算是一种组合问题,它的结果集是无序的,因此在回溯算法的for循环遍历中,也需要用到。ps:如果要是全排列的话,每次要从0开始遍历,为了跳过已入栈的元素,需要使用used。used[i] == 0 (false),说明将在同一树层使用nums[i]used[i] == 1 (true),说明同一树枝nums[i]使用过。如果合法,递归,进入下一行,回溯。叶子结点:row == n。

2023-08-20 17:04:59 51 1

原创 第十天打卡——回溯

回溯法其实就是暴力查找,想效率高点就配上剪枝;回溯法解决的问题都可以抽象成树形结构。另外,。例如:{1, 2} 和 {2, 1} 在组合上,就是一个集合,因为不强调顺序,而要是排列的话,{1, 2} 和 {2, 1} 就是两个集合了。组合问题:要理解组合问题不同于全排列,需要去掉一些重复的组合,此时需要用到指针来表示,每一次。将问题抽象成树形结构。。。相当于只需要把达到叶子节点的结果收集起来,就可以求得 n个数中k个数的组合集合。设置两个全局变量保存单次结果,和结果集;故无返回值。

2023-08-17 21:53:46 57 1

原创 第九天打卡

530.二叉搜索树的最小绝对差530.二叉搜索树的最小绝对差利用二叉排序树的特性先递归得到一个有序数组,再取数组中差值最小的两个数递归遍历过程中,通过双指针在遍历的同时,获得前后两个数值的差,并取最小值。501.二叉搜索树中的众数。

2023-07-24 20:57:01 46

原创 第八天打卡——二叉树

除此之外,就是设置一个List<Integer>类型的pathNode数组记录递归和回溯经过的结点,一个List<List<Integer>>类型的result数组记录找到的每一条符合条件路径。对于一般二叉树,递归过程中还有回溯的过程,例如走一个左方向的分支走到头了,那么要调头,在走右分支。再判断当前结点是否是左叶子结点的父结点,如果是左叶子的父结点,leftCounts赋值为左叶子的值;什么是左叶子:某结点的左孩子不为空,且左孩子的左孩子为空,左孩子的右孩子为空,则该结点的。其他情况返回false。

2023-07-23 21:17:10 47

原创 第七天打卡——二叉树

递归遍历常规题。确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。迭代遍历——非递归遍历、利用栈前序、后序类似。中序需要特别注意。:结点先入栈。

2023-07-19 22:16:49 71

原创 第六天打卡——栈与队列

1047. 删除字符串中的所有相邻重复项。239. 滑动窗口最大值 (一刷。347.前 K 个高频元素。150. 逆波兰表达式求值。225. 用队列实现栈。(一刷至少需要理解思路)232.用栈实现队列。

2023-07-17 23:55:21 95 1

原创 第五天打卡——字符串

剑指Offer58-II.左旋转字符串。剑指Offer 05.替换空格。28. 实现 strStr()151.翻转字符串里的单词。541. 反转字符串II。459.重复的子字符串。

2023-07-14 23:07:42 46 1

原创 第四天打卡——哈希表

指针如何移动 a = nums[i],b = nums[left],c = nums[right]。tips:判断nums[i] == nums[i+1]是没用的,因为会把{-1,-1,2}这种元组内有重复元素的跳过。二级剪枝:nums[k] + nums[i] > target && nums[k] + nums[i] > = 0;//set集合不允许重复值,添加重复值,会被覆盖,set结构不变。区别在于a,b,c,d。1、对a的去重:当nums[i] == nums[i-1]时,重复。

2023-07-13 18:10:21 55 1

原创 第三天打卡——链表

first不一定就刚好是pre的next的next,只是在n=2时,刚好是。这道题,leetcode上题解更多的是遍历两遍两个list,找共同结点,逻辑比较绕。设置虚拟头结点,first向前移动n次后,双指针同时移动,知道first指向最后一个结点。需要用到三个指针,一个指向当前结点,一个指向前一个结点,一个临时结点(交换位置时存放结点)刚接触,对链表的实现不是很熟,但是思路还是比较清晰的,重点就是虚拟头节点的设置。走两个节点,slow走一个节点,有环的话,一定会在环内相遇。,就会遇到相遇结点。

2023-07-11 02:06:15 42

原创 第二天打卡

从尾部开始遍历,不会出错的原因是,原数组本身就是有序的。数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间。但是最小值就不一定在头部或者尾部,新数组从头部遍历得到的只是比较的两个数中的极大值,必然出错。每次循环的起始点设为[start][start],循环一圈结束后,start++。:原数组的循环条件需要注意,原数组本身就是有序的,又需要遍历数组,循环结束条件可以设置为left>right(同二分查找),分别设置左右指针,遍历原数组,比较最左最右,得到最大值。977.有序数组的平方。

2023-06-05 23:22:48 37 1

原创 代码随想录一刷——第一天打卡

以及输出的是整数,打印的却是数组:是因为函数内部写了打印方法:根据你的函数返回的长度, 它会打印出数组中。判断溢出是判断target是否溢出,不是判断指针溢出。最后的return返回的是修改后的数组长度。在原数组的基础上进行数值的遍历和修改。双指针法/快慢指针法。

2023-04-10 14:04:47 100 1

原创 解决 module ‘cv2‘ has no attribute ‘createHausdorffDistanceExtractor‘

豪斯多夫(Hausdorff)距离,解决module cv2' has no attribute 'createHausdorffDistanceExtractor'

2022-10-11 15:47:49 1506 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除