自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划--LeetCode第338题比特位计数

所以直接查官方解答。好家伙,位运算~~~~~~~~~没正经学过捏,这边浅浅的学一点吧。题目要的是返回一个长度为n+1的数组ans,直接设dp[n+1] 就是这个数组;想了一个下午,想破头也想不出来,被官方秒了。数组元素间的关系是?

2023-09-14 18:27:46 54 1

原创 动态规划--LeetCode第121题买卖股票的最佳时机

假如我今天买入股票,那么我明天只能卖出股票或者不变化,故有:dp[i] = max(dp[i-1],prices[i]-buyprice);这个状态转移方程和我感觉差不多捏,问题是我的买入股票的价格要遍历,人家只需要求出最小的买入股票价格。所以还是要多学~~~~~~~~~~当第k天买入,buyprice = prices[k-1], dp[m] = 0;题目要求的是最大利润,不妨设n天内的最大利润为dp[n];嘿,好像没问题,但是时间复杂度有点高了捏,有O(n²)。第k天前的最大例润都为0(包括第k天)

2023-09-13 15:29:20 46

原创 动态规划--LeetCode第119题杨辉三角2

题目中的rowIndex同时也是每行的元素个数,所以设置数组int dp[n][n],n就是题目中的rowIndex;然后呢,就是找数组元素之间的关系,就是:dp[i][j] = dp[i-1][j-1] + dp[i-1][j];初始值为dp[0][0] = 1;第一列和最后一列的值都为1;思路与118题的杨辉三角类似,只是返回值变为某一行的数据;才刷三题简单题,我感觉我又行了~~~

2023-09-13 13:04:54 50

原创 动态规划--LeetCode第118题杨辉三角

动态方程转移式就为:dp[i][j] = dp[i-1][j-1] + dp[i-1][j],前提是n>i>=1 && 0<j<n;诶,这边返回值他说我编译错误,看来这边不能简单的返回一个数组,所以我得从头把这个数组变一变~~~~由题目条件可知,杨辉三角中,每个数是它左上方和右上方的数的和,所以设置一个数组dp[n][n],n为杨辉三角的行数,即题目中的numRows,每个dp[i][j]对应的是第i行第j列的元素;当j=n-1时,即为最后一列的所有值,都为1;当j=0时,即为第一列的所有值,为1;

2023-09-12 23:10:15 55

原创 动态规划--leetcode第70题爬楼梯

dp有什么式子可以表达数组元素之间的关系捏?可以知道,到达楼顶的前一步,是到楼顶的下一层爬一层,或者到楼顶的下二层爬两层,故有:dp[n] = dp[n-1] + dp[n-2];答案是不管什么题,都可以尝试着去使用动态规划,因为这是最最最基本的一种思想。然后就是找初始值了,由题可知,dp[0] = 1,dp[1] = 2,dp[2] = 3,刚好也满足上述关系式;题目中要求多少中不同的方法可以到楼顶(n层),可以直接设置到达楼顶的方法总数为dp[n];结果是没问题的,时间复杂度和空间复杂度都是O(n);

2023-09-12 21:48:33 54

空空如也

空空如也

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

TA关注的人

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