Adam's blog
Published by Adam

01 2019 档案

摘要:跳跃游戏链接 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 示例 2: 如果只是判断能否跳到终点,我们只要在遍历数组的过程中,更新每个点能跳到最远的范围就行了, 如果最后这个范围大于等于终点,就是 阅读全文
posted @ 2019-01-04 22:04 AdamWong 阅读(343) 评论(0) 推荐(0)
摘要:题目 贪心方法 用一个两个数组vector<int>cnt,vector<bool>in_right_place; string res:目前符合条件的字符串,到代码结束的时候,这个res才是正确的答案 cnt数组 用于记录每个char未来会出现的次数,in_right_place数组判断这个cha 阅读全文
posted @ 2019-01-04 14:31 AdamWong 阅读(2039) 评论(0) 推荐(1)
摘要:这一题是贪心不是模拟 是贪心不是模拟 是贪心不是模拟! 如果用模拟的做法会比较慢,也失去了做这一题的趣味了。 模拟的方法很简单,就是每一个加油站都做起点模拟一遍,试一下能不能完成一圈,能完成一圈就保存答案,不能完成的就往下一个找 如果都不能完成则返回-1 贪心的做法非常的巧妙,整个循环数组如下性质。 阅读全文
posted @ 2019-01-03 22:15 AdamWong 阅读(346) 评论(0) 推荐(1)
摘要:题目 1.区域和检索: 简单题,前缀和方法 乍一看就觉得应该用前缀和来做,一个数组多次查询。 实现方法: 新建一个private数组prefix_sum[i],用来存储nums前i个数组的和, 需要找区间和的时候直接通过prefix_sum[j]-prefix[i-1]即可得到从[i,j]区间的和, 阅读全文
posted @ 2019-01-03 20:30 AdamWong 阅读(411) 评论(0) 推荐(1)
摘要:恢复内容开始 题目的链接 简单的动态规划题,使用了二维dp数组就能很好的表示。 由于有边界的问题,所以这个dp数组为 dp[n+1][n+1]。 dp[i][j]意思是终点为(i-1,j-1)点的路径最小和。 我们需要把这个三角形变成方阵来看,先看看样例: 变成方阵之后就变成了 [ [2, INT_ 阅读全文
posted @ 2019-01-03 15:35 AdamWong 阅读(217) 评论(0) 推荐(0)
摘要:链接 给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例: 未使用的STL的lower_bound()的模拟法加查找代码,因为减少了函数调用,效率会高很多 3. 记 阅读全文
posted @ 2019-01-02 14:30 AdamWong 阅读(6969) 评论(0) 推荐(1)
摘要:题目链接 这一题目首先需要弄懂题目的意思,下降路径最小和指的是在方阵中可以从上往下行走,走过后获得的值最小,方向可以是走左下,右下,直下。 题目和传统的动态规划一样,把边界的值先初始化,然后通过状态转移一步一步到最后一行 我们有dp[i][j]:意思是终点为(i,j)的下降路径最小值 状态方程为 d 阅读全文
posted @ 2019-01-01 16:24 AdamWong 阅读(528) 评论(0) 推荐(1)