- 博客(11)
- 收藏
- 关注
原创 LeetCode刷题日记11【115,72】
二维数组以展现两个字符串每个元素的比较情况:以i-1结尾的字符串s中有以j-1结尾的字符串t的个数。
2024-02-05 22:14:02
949
1
原创 LeetCode刷题日记10【583】
需要一个二维数组才能表示两个字符串的比较状态dp[i][j]表示以i-1为结尾的word1和以j-1位置为结尾的word2至相同字符串的最小操作数。
2024-02-02 23:56:01
268
原创 LeetCode刷题日记09【647, 392】
控制左指针位置不能超过0索引、控制右指针位置不能超过length索引、当前左指针和右指针对应的字符相同。满足了则是回文子串,res数量加一,左指针往左扩散,右指针往右扩散。2. 长度为n的回文字符串,每两个元素的间隙都可以作为中心,也就是length-1个。1. 长度为n的回文字符串,每一个元素都可以作为中心,也就是length个。则总共为2length-1个回文子串中心位置。因为会有奇数长度和偶数长度的情况。1. 中心位置有一个元素。2. 中心位置是两个元素。先找子串的中心位置,由。
2024-02-01 18:06:58
173
2
原创 LeetCode刷题日记08【123】
123.买卖股票的最佳时机III 最多买卖两次可以收获的最大利润【求手头上的最大剩余现金】关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖,所以需要定义5个状态 1. dp数组定义:dp[i][j]中 i表示第i天,j为 [0 - 4] 五个状态,dp[i][j]表示第i天状态j所剩最大现金。dp[i][0]不操作dp[i][1]第一次持有dp[i][2]第一次不持有dp[i][3]第二次持有dp[i][4]第二次不持有2. 递推公式:1. dp[i][0]= dp[i-1][0]不操
2024-01-29 00:11:35
689
原创 LeetCode刷题日记06【37】
放完了当前坐标以后需要放下个坐标了,也就是下一层递归了【注意这里不像普遍的回溯算法的写法,由于递归函数会返回boolean因此相当于一系列递归完之后,如果board的其他位置都被放置完毕则返回true】(if backTracking(board) return true)记得加return false【这样代表着当一行一列确定下来了,尝试了9个数都不行,说明这个棋盘无解,因此会直接返回,即没有终止条件也不会因为填不满棋盘导致无限递归】【和循环9个数的for循环缩进同级是因为如果9个数尝试完都不行】
2024-01-26 00:47:19
317
1
原创 LeetCode刷题日记05【47, 491, 332】
(used[i-1] == false)【因为used数组定义的作用,因为开始递归的是首层,如果是树层的话则上一位索引位置一定是0,否则就是树枝了【树枝是不需要减枝的,因为本身一条路径里就是可以含重复元素的】】树枝的情况需要考虑如果当前索引取过则不能取【取过的数直接跳过,接下来能取的数的范围是没取过的剩下的数】(used[i] == true则continue)如果叶子节点找到一个集合大小等于nums大小的结果则停止(path.size == nums.size)的排列情况,树层上(同层横向)是。
2024-01-24 06:57:28
745
1
原创 leetCode刷题日记03【669】
如果当前节点值小于修剪范围的左区间,则往右子树递归遍历(if (root.val < low) traversal(root.right, low, high))【为什么要往右子树遍历是因为有可能当前节点虽然自己不满足,但是因为二叉搜索树的性质右子树大于当前节点值,因此有可能是大于修剪范围的左区间以检查是否有右子树的节点满足】,那么需要返回的是root.right(因为是当前节点的右子树有可能满足)需要检查(递归遍历)其右子树(二叉搜索树的性质会导致有可能右子树比下界大因此满足范围);同理则检查其左子树;
2024-01-18 23:25:42
341
原创 leetCode刷题日记02【450】
的左子树位置【同理也可以选择如果让左子节点继位,则将该节点的父节点指向该节点的左子节点,再将该节点的右子树放在左子节点的右子节点的右子树位置】引用自。
2024-01-17 12:21:28
815
原创 leetCode刷题日记01【513, 209, 24】
【左在右前面】如果左节点不为空(否则操作空指针)则深度加加,再向左遍历(递归),递归完需要回溯到上层(也就是深度减减)然后再深度加加,再向右遍历(递归),递归完依然需要回溯到上层(也就是深度减减)【如果当前深度大于目前最大深度则更新maxDepth和result(这样才能使遍历完之后result存的是深度最大的叶子结点的值)】结果:记录当前节点的数值(result)(如果比目前最大深度大则更新result)遍历到叶子节点(左孩子和右孩子都等于空)1. 方法传参:遍历(当前节点,深度)找深度最大的叶子节点。
2024-01-16 13:21:04
335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人