09 2022 档案

每日一结
摘要:##剑指 Offer 03. 数组中重复的数字 建立一个HashMap,键为当前数字;值为当前数字出现的次数。 map.put(nums[i], map.getOrDefault(nums[i], 0) + 1); 最后遍历一遍数组,值不为1的返回即可。 ##剑指 Offer 04. 二维数组中的查 阅读全文

posted @ 2022-09-30 19:04 xtdnn 阅读(20) 评论(0) 推荐(0)

每日一结
摘要:##5. 最长回文子串 本题,需要求出给定字符串中的最长回文子串。 解题思路,既然要求最长,就设置一个len来记录最长字串,初始化为1。 采用扩散的方法,设置一个left和right,以及maxstart。 while(left >= 0 && s.charAt(left) == s.charAt( 阅读全文

posted @ 2022-09-29 18:58 xtdnn 阅读(19) 评论(0) 推荐(0)

每日一结
摘要:##回文子串是要连续的,回文子序列可不是连续的 ##516. 最长回文子序列 解决本题一个很妙的做法就是,设置一个二维数组,行为给定字符串的最后一位,列每次的起始值为行+1。 这样做的好处,类似于倒着来。因为当前状态由前面的状态得来。而最终要求的是起始值为0,终值为n-1的那个位置的值。 for(i 阅读全文

posted @ 2022-09-28 19:27 xtdnn 阅读(22) 评论(0) 推荐(0)

每日一结
摘要:##174. 地下城游戏 本题是本人在学习动态规划遇到的第一道比较特殊的题目。 因为此题是倒着推的。因为要求最低血量,如果正着从起点开始求,不能保证后无效性。也就是说,前面的工作并没有解决子问题。 但是倒着推就能完美解决这个问题。 本题还有一个重要的点是,利用算术运算,负负得正,很便捷地解决了扣血的 阅读全文

posted @ 2022-09-27 20:19 xtdnn 阅读(21) 评论(0) 推荐(0)

每日一结
摘要:##120. 三角形最小路径和 要求自顶到下的最短路径,只需要把从顶到各个位置的值都求出,最后再找出最底行的最小值即可。 因为当前位置可由其正上方或者斜上方得来,所以只需要初始化,第零列(没有左斜放)和斜的i=i(没有正上方)即可。 ##96. 不同的二叉搜索树 要求n个节点即长度为n的二叉搜索树的 阅读全文

posted @ 2022-09-26 20:12 xtdnn 阅读(20) 评论(0) 推荐(0)

每日一结
摘要:279. 完全平方数 在于建立一个从1到所救数字的最优解数组。对于当前所需求的数字,i为当前所需求解的数字 min = Math.min(min, ans[i - j * j]) ans[i] = min + 1 再加上j这个情况即可。 188. 买卖股票的最佳时机 IV 因为题目说可以买入k次,所 阅读全文

posted @ 2022-09-25 21:20 xtdnn 阅读(23) 评论(0) 推荐(0)

每日总结
摘要:今天依旧是动态规划。(倒着回去) 64. 最小路径和 初始一下两边的值(从左上角开始的第零行和第零列),之后的每一个格子由紧挨着它的上左两个格子的最小值加上当前格子的值得来。 ans[i][j] = Math.min(ans[i - 1][j], ans[i][j - 1]) + grid[i][j 阅读全文

posted @ 2022-09-24 19:24 xtdnn 阅读(32) 评论(0) 推荐(0)

每日总结
摘要:今天开始了动态规划题目的学习。 以前对于,最优子结构,重叠子问题这句话的理解可以说是,没有什么理解。 其实就是,我当前需要解决的这个问题,可以由之前的已经有答案的问题得来。 再者,对于子问题的限制,和一些规定,这个需要经验,或者说是灵感。 对于53. 最大子数组和而言。重要的在于把每一个新加入的元素 阅读全文

posted @ 2022-09-23 21:51 xtdnn 阅读(29) 评论(0) 推荐(0)

每日一结
摘要:对于LCP 42. 玩具套圈此题而言。 本人一开始想到的是以圈为基,但是一直不对。在修改了好多次后,看到答案,梦地醒悟,为啥不已toy为基。 可见有时候视角的转换尤为重要。 余下依旧是递归。 阅读全文

posted @ 2022-09-22 18:40 xtdnn 阅读(27) 评论(0) 推荐(0)

每日一结
摘要:尤其注意递归的条件,分析好了各种情况。再下手写(不然堆积屎山堆积)。 例如求二叉树的最小深度,就分三种情况。 无子节点;有一个子节点;有两个子节点。那么就很明晰 public int minDepth(TreeNode root) { if(root == null) { return 0; } e 阅读全文

posted @ 2022-09-21 17:13 xtdnn 阅读(29) 评论(0) 推荐(0)

每日总结
摘要:1、对于LeetCode297. 二叉树的序列化与反序列化而言。需要注意的是递归出口的灵活应用,以及递归的深层理解。尤其对于链表、树、图这三种数据结构而言,递归的使用非常频繁。 (详见全面理解递归 - 知乎 (zhihu.com)) 再者,此道题中的一些本人不熟悉的语法例如: String[] cu 阅读全文

posted @ 2022-09-20 14:48 xtdnn 阅读(24) 评论(0) 推荐(0)

每日总结
摘要:对于LeetCode538. 把二叉搜索树转换为累加树。 我们知道二叉搜索树的特点是,任何一个节点其.left.val一定小于其.val;其.right.val一定大于其.val。 解决本题最妙的一个想法便是,灵活地运用了二叉树的中序遍历。 通过中序遍历处理二叉搜索树,可以得到一个从小到大val的队 阅读全文

posted @ 2022-09-19 16:58 xtdnn 阅读(23) 评论(0) 推荐(0)

每日总结
摘要:1、对于LeetCode236题二叉树的最近公共祖先。最简单的思路便是用一个HsahMap来存储当前位置的节点的val和其上一层的TreeNode。 为什么这一层的val和上一层的节点对应呢。因为思路是由底至上扫描。我们需要从一个子节点向上访问。 2、对于LeetCode199二叉树的右视图。一个很 阅读全文

posted @ 2022-09-18 19:10 xtdnn 阅读(15) 评论(0) 推荐(0)

zTao.力扣杂记
摘要:剪枝与回溯 对于需要求出各种满足题目要求的组合类型的题目。往往需要用到剪枝策略。 例如LeetCode44求组和总数、22括号生成、473火柴拼正方形、77组合、216组合总和3、131分割回文串、46全排列、51 N皇问题。 解决这些题目的时候往往都可以用到分支的方法,总一个点开始发散开来。我们需 阅读全文

posted @ 2022-09-18 18:51 xtdnn 阅读(40) 评论(0) 推荐(0)

导航