- 博客(4)
- 资源 (3)
- 收藏
- 关注
原创 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 267
原创 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 258
原创 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 317
原创 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 243
springcloud jar包转war包 demo
2018-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人