![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
直接法
Kweisan0
这个作者很懒,什么都没留下…
展开
-
每天一道算法题之最佳观光组合
题目描述: 给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。返回一对观光景点能取得的最高分。1 分析: 一个for循环遍历数组,更新ans和preMax; ans = A[i]+A[j]+i-j = A[i] + i -(A[j] - j) = A[i] + i - preMax; p原创 2020-08-12 19:17:34 · 210 阅读 · 0 评论 -
每天一道算法题之跳跃游戏II
题目描述: 给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。1 分析: 遍历数组,在本次允许跳跃的范围内更新下一次跳跃可到达的最远距离;直至到达数组最后.统计更新最远距离的次数,就是题目中所求的跳跃次数. 代码部分: public int jump(int[] nums) { if(nums == null || nums.length <= 1) return 0; int in原创 2020-07-28 20:45:15 · 236 阅读 · 0 评论 -
每天一道算法题之跳跃游戏
题目描述: 给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。1 分析: 通过一个变量reach记录当前位置可以到达的最远位置,并将这个最远位置与数组最后一个位置进行比较,如果可以到达最后一个位置,返回true,反之无法到达,其变形题求的是通过几部可以到达数组最后,那么每更新一次reach就完成了一步 代码部分: public boolean canJump(int[] nums) { if(nums.原创 2020-07-27 20:22:29 · 228 阅读 · 0 评论 -
每天一道算法题之实现strStr
题目描述: 实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。1 示例 1: 输入: haystack = “hello”, needle = “ll” 输出: 2 代码: public int strStr(String haystack, String needle) { if(needle == "") return 0;原创 2020-07-25 21:49:00 · 71 阅读 · 0 评论