博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode题目解与讲(贪心算法)
阅读量:6037 次
发布时间:2019-06-20

本文共 1868 字,大约阅读时间需要 6 分钟。

  这几天在复习算法。所以把以前看过的《算法导论》又看了一遍。不是每章节都看了,挑了有点忘记的,今天正好看了“贪心算法” 。所以在leetcode上找了关于“贪心算法”

 的题。

Jump Game

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Determine if you are able to reach the last index.

For example: A = [2,3,1,1,4], return true.

A = [3,2,1,0,4], return false.

从第一个开始,一步一步往上跳。看是否可以到达或者越过最后一个,可以的话返回True。

1 class Solution { 2 public: 3     bool canJump(int A[], int n) { 4          int reach = 1; // 可以达到的最大右边 5         for (int i = 0; i < reach && reach < n; ++i) 6             reach = max(reach,  i + 1 + A[i]); 7         return reach >= n; 8   9     }10 };

Jump Game II

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Your goal is to reach the last index in the minimum number of jumps.

For example: Given array A = [2,3,1,1,4]

The minimum number of jumps to reach the last index is 2. (Jump 1 step from index 0 to 1, then 3 steps to the last index.

1 // LeetCode, Jump Game II 2 // 时间复杂度O(n),空间复杂度O(1) 3 class Solution { 4 public: 5     int jump(int A[], int n) { 6         int step = 0; // 最小步数 7         int left = 0; 8         int right = 0;  // [left, right]是当前能覆盖的区间 9         if (n == 1) return 0;10 11         while (left <= right) { // 尝试从每一层跳最远12             ++step;13             const int old_right = right;14             for (int i = left; i <= old_right; ++i) {15                 int new_right = i + A[i];16                 if (new_right >= n - 1) return step;17 18                 if (new_right > right) right = new_right;19             }20             left = old_right + 1;21         }22         return 0;23     }24 };

 

 

转载于:https://www.cnblogs.com/zongmeng/p/4357513.html

你可能感兴趣的文章
Java虚拟机5:Java垃圾回收(GC)机制详解
查看>>
web网页的表单排版利器--960css
查看>>
poj3281-Dining ,最大流量,内置图
查看>>
jsp跳转后台代码页的简易方式~
查看>>
趁我酒醉后专车司机想要非礼我
查看>>
AngularJS学习总结
查看>>
ArcGIS制图之Subset工具点抽稀
查看>>
实现基于Task的异步模式
查看>>
2.Cocos2dx 3.2重力系统Box2D
查看>>
[转]Oracle中存储过程和函数的区别
查看>>
解决eclipse中安装AIX2插件问题
查看>>
UIKIT网页基本结构学习
查看>>
多线程的常见用法详解 --转载
查看>>
CArray,CList,CMap如何实例化
查看>>
Jquery DataTable
查看>>
java将白色背景图片转换成无色
查看>>
Oracle 收集统计信息11g和12C在差异
查看>>
项目中phpexcel的基本用法
查看>>
ContextLoaderListener作用详解(转)
查看>>
优步司机端界面大改版,不会用搓这里!
查看>>