自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [leetcode]70.Climbing Stairs|Dynamic Programming

题目题目分析:用动态规划解题,因为每一层楼梯都可以由i - 2层楼梯爬两层到达或者由i - 1层楼梯爬一层到达,所以转移方程为:dp[i] = dp[ i - 1] + dp[i - 2]。代码class Solution { public int climbStairs(int n) { int[] dp = new int[n]; if(n =...

2019-11-26 22:33:24 148

原创 [leetcode]121.Best Time to Buy and Sell Stock|差分数组&Dynamic Programming

题目题目分析:这道题也是求最值,所以用了动态规划。直接用prices求动态规划数组好像不太行,所以我就加了一个差分数组diff,然后按照求最大subarray和的方法,求得结果。代码class Solution { public int maxProfit(int[] prices) { int n = prices.length; if(n ==...

2019-11-26 21:24:29 280

原创 [leetcode]746.Min Cost Climbing Stairs|Dynamic Programming

题目题目分析:还是求最值得问题,用动态规划,转移方程为:dp[i] = Math.min(dp[i - 1], dp[i - 2]) + cost[i - 2]。返回结果时需要注意,返回dp[n + 1],dp[n]两者之间较小值。代码class Solution { public int minCostClimbingStairs(int[] cost) { i...

2019-11-26 08:59:22 138

原创 [leetcode]53.Maximum Subarray|DynamicProgramming

题目题目分析:这个题让求最大的subarray和,也是求最值的问题,因此用动态规划会比较好。dp[i]表示i处所能取得的最大subarray sum,我们需要找到状态转移方程。i处的最大subarray和为i-1的subarray和加上i处的数值和i的数值两者间最大值,即dp[i] = max(nums[i], nums[i] + dp[i - 1])。因为最大的值不一定在最后一个值处取得,...

2019-11-26 03:35:54 140

原创 [leetcode]392.Is Subsequence|BruteForce|想到别的方法会继续更新

题目题目分析:求subsequence的问题,应该用动态规划吧,但是还没有想到合适的转移方程,所以用brute force方法先写了… 想到dp会更新代码```javaclass Solution { public boolean isSubsequence(String s, String t) { int sp = 0; int i = 0...

2019-11-26 03:21:09 73

原创 [leetcode]213.House Robber II|Dynamic Programming

题目题目分析:这道题和198题基本一样,不同的是这道题的房子arranged in a circle,所以最后一个房子和第一个房子就不能同时偷,所以我就分了两种情况进行动态规划求值。一种情况是不偷第一个房子,dp1从第二个房子开始记录,其它的正常dp求值;第二种情况是不偷最后一个房子,dp2记录到倒数第二个房子,其它的正常dp求值。最后返回两种情况的最大值。代码class Soluti...

2019-11-26 00:40:06 150

原创 [leetcode]198.House Robber|Dynamic Programming

题目题目分析:求最值的问题,一般就用动态规划。首先要写出状态转移方程,因为不能在同一晚上偷两个连续的房子,所以第i个房子处能得到的最大利益为偷第i个房子不偷第i-1个房子和偷第i-1个房子不偷第i个房子两者之间的最大值,即dp[i] = max(dp[i - 2] + nums[i - 1], dp[i - 1])。因为我定义的dp长度为n + 1(n为数组长度),所以此处是numsp[i...

2019-11-26 00:14:16 149

空空如也

空空如也

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

TA关注的人

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