![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
一笑而过者也
爱好java,分布式开发
展开
-
leetcode 25 Reverse Nodes in k-Group
给一个链表,每k个节点一组进行反转,输出反转后的链表hard难度,但突破点很好找,具体解体思路,看下面代码中每行注释public class LC25 { public static void main(String[] args) { ListNode listNode = new ListNode(1, new ListNode(2, new ListNode(3, new ListNode(4, new ListNode(5, null)原创 2020-11-11 23:09:18 · 237 阅读 · 0 评论 -
343. Integer Break
把一个整数拆分成至少两个正整数的和,要求拆分后的整数的乘积最大。Example 1:Input: 2Output: 1Explanation: 2 = 1 + 1, 1 × 1 = 1.Example 2:Input: 10Output: 36Explanation: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36.动态规划数值大的依赖于数值小的,所以找到状态转移公式很重要。bp[i] = Math.max(j * bp[i - j], j *(i - j))cla原创 2020-05-13 23:10:04 · 256 阅读 · 0 评论 -
leetcode64. Minimum Path Sum
给一个非负数二维数组,从左上到右下,最短的路径只能向右或者向下走Example:Input:[ [1,3,1], [1,5,1], [4,2,1]]Output: 7Explanation: Because the path 1→3→1→1→1 minimizes the sum.动态规划这里面存在一个问题,要想求出下一步的最短距离,必须求出上一步的最短距离边界:mins[0][0] = grid[0][0]状态转移公式3个:grid[0]那一排,依赖于左侧grid原创 2020-05-12 22:54:51 · 229 阅读 · 0 评论 -
leetcode 120. Triangle
给一个三角形,寻找一个从顶到底的最小的路径和,只能是临近的数字的和[ [2], [3,4], [6,5,7], [4,1,8,3]]The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11).解题思路动态规划每一层都依赖于上一层按照从上到下,从右到左的顺序,一层一层的求开一个int[] f = new int[triangle.size()];这么大的空间重复利用就可以了cl原创 2020-05-11 23:11:25 · 290 阅读 · 0 评论 -
leetcode5.Longest Palindromic Substring
返回最长回文串Example 1:Input: "babad"Output: "bab"Note: "aba" is also a valid answer.Example 2:Input: "cbbd"Output: "bb"解题思路:定义下标i,j,boolean dp[i][j]动态规划思想:要求大的,先求小的边界:dp[i][j] = truei ==j 单个字符一定为truestr[i] == str[j]&&j-i ==1 两个挨着的字符相等原创 2020-05-10 22:39:06 · 214 阅读 · 0 评论