117-跳跃游戏 II

给出一个非负整数数组,你最初定位在数组的第一个位置。

数组中的每个元素代表你在那个位置可以跳跃的最大长度。   

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

样例

给出数组A = [2,3,1,1,4],最少到达数组最后一个位置的跳跃次数是2(从数组下标0跳一步到数组下标1,然后跳3步到数组的最后一个位置,一共跳跃2次)

标签

贪心 数组

思路

使用贪心算法,用2个变量 end, farthest 分别从当前(第 i 位)到第 end 位,可以一次跳跃的最远距离farthest ,当移动到第 end 位时,再次跳跃,直至跳出

code

class Solution {
public:
/**
* @param A: A list of lists of integers
* @return: An integer
*/
int jump(vector<int> A) {
// wirte your code here
int size = A.size();
if(size <= 0){
return 0;
} int farthest = 0, end = 0, minJump = 0;
for(int i=0; i<size; i++) {
farthest = (farthest > A[i]+i) ? farthest : A[i]+i;
if(i == end && end < size-1) {
minJump++;
end = farthest;
}
} return minJump;
}
};

最新文章

  1. 解决 git 中文路径显示 unicode 代码的问题
  2. 使用Git命令从Github下载代码仓库
  3. python处理Excel
  4. Nmap Snote
  5. 你不得不看的Python机器学习工具
  6. 【源码分析】Canal之Binlog的寻找过程
  7. Server的API如何设计才满足RESTful要求?
  8. Perl一行式:文本编解码、替换
  9. python基础-字符串(6)
  10. 性能测试 查看Android APP 帧数FPS的方法
  11. [转] mongoose学习笔记(超详细)
  12. 【Quartz】实现接口封装化(二)
  13. Django 利用 Pagination 简单分页
  14. axios post参数为空
  15. [leetcode]Merge Intervals @ Python
  16. TensorFlow-Python:创建空列表list与append的用法
  17. 利用backtrace和backtrace_symbols函数打印调用栈信息
  18. MySql_34道经典Sql试题
  19. Hdu1560 DNA sequence(IDA*) 2017-01-20 18:53 50人阅读 评论(0) 收藏
  20. 排查MySQL事务没有提交导致 锁等待 Lock wait timeout exceeded

热门文章

  1. 转载:/etc/security/limits.conf 控制文件描述符,进程数,栈大小
  2. About Unity3D 4.1.2 (to continue&hellip;)
  3. mysqldump备份与基于bin-log实现完全恢复
  4. linux系统基础之---账号管理(基于centos7.4 1708)
  5. javascript--select标签的添加删除功能的使用
  6. 【linux运维递进】
  7. 学习新框架laravel 5.6 (第二天)-DB,控制器及模型使用
  8. POJ3687 反向拓扑排序
  9. Spring BindingResult验证框架Validation特殊用法
  10. 总结Verilog中always语句的使用