我是一只小跳蛙

首先是题目:

给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个位置。例子:
输入: [2,3,1,1,4]
输出: true
解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。

需要注意的是,参数是可以跳的最大长度,不是必须要跳的长度——也就是说,跳出去也没问题的。
因为这个特点,所以使用贪心算法,计算每个位置能跳的最大值。
比如第一个数值是2,位置是0,所以当前最大位置是2
第二个数值是3,位置是1,此时最大位置是4——大于2,更新。
依次类推,如果存在一个位置它的最大位置大于数组的长度,则可输出true。
失败的判定如下,当前位置大于能跳的最大值——说明跳步中断了,根本无法跳到这里。
很简单的思路,下面是代码

#include <iostream>
#include <stdlib.h>
using namespace std;
int max(int a, int b)
{if (a > b)return a;elsereturn b;
}
int main()
{int array[6] = {1,1,0,1,1,4};int maxlen = 0;int size = sizeof(array) / sizeof(array[1]);bool flag = false;for (int i = 0; i < size; i++){if (i > maxlen)break;maxlen = max(maxlen, i + array[i]);if (maxlen >= size){flag = true;}}cout << flag << endl;return 0;
}

【如果是固定跳步应该是用动态规划吧……小声bb】
【呱呱呱呱呱】

c++算法解决力扣跳步问题相关推荐

  1. 双指针解决力扣两/三数之和问题

    双指针解决力扣两/三数之和问题 文章目录 双指针解决力扣两/三数之和问题 一.问题描述 二.分析 1.暴力 2.排序+双指针法 3.hash法 三.问题描述 四.分析 方法一:排序 + 双指针 五.代 ...

  2. 回溯法解决力扣79题单词搜索

    回溯法解决力扣79题单词搜索 给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母 ...

  3. 【数据结构与算法】力扣实战之移动零、盛最多的水、爬楼梯

    练题法则 5-10分钟读题与思考 不要纠结没有思路就直接看题解: 不要死磕觉得自己很失败,怎么我们就想不出来: 基本上这些算法题,让我们自己想出来是不可能的: 拿跳表的来说,如果我们能从0-1把它想出 ...

  4. 【算法】力扣670最大交换

    某天,我的朋友给我发来一道题,力扣的670 这道题一开始把我难住了,结果是我眼花看错题意了,后来我用了最简单的类似冒泡算法解决了.思路类似于冒泡算法,相邻两两交换,使用了StringBuffer这种采 ...

  5. C++算法学习(力扣:328. 奇偶链表)

    给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂度应为 O(1),时 ...

  6. C++算法学习(力扣:1091. 二进制矩阵中的最短路径)

    在一个 N × N 的方形网格中,每个单元格有两种状态:空(0)或者阻塞(1). 一条从左上角到右下角.长度为 k 的畅通路径,由满足下述条件的单元格 C_1, C_2, -, C_k 组成: 相邻单 ...

  7. C++算法学习(力扣:面试题 16.04. 井字游戏)

    设计一个算法,判断玩家是否赢了井字游戏.输入是一个 N x N 的数组棋盘,由字符" ","X"和"O"组成,其中字符" &quo ...

  8. C++算法学习(力扣:201. 数字范围按位与)

    给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点). 示例 1: 输入: [5,7] 输出: 4 ...

  9. C++算法学习(力扣:134. 加油站)

    在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升. 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升.你从其中的一个加 ...

  10. C++算法学习(力扣:402. 移掉K位数字)

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: nu ...

最新文章

  1. 使用谷歌 Colab Notebooks,这 6 个小技巧你需要掌握
  2. 电商系统如何做搜索引擎?
  3. hdu 3790(最短路)
  4. 1313 质因数分解 2012年NOIP全国联赛普及组
  5. 因为喜欢,所以选择它
  6. 微软正式释出基于 Chromium 的 Edge 预览版本
  7. 声明对象 创建对象_流利的对象创建
  8. c语言清空输入缓冲区函数,c语言:C语言清空输入缓冲区在标准输入(stdin)情况 -电脑资料...
  9. QuickMan 手记 - Activiti 环境搭建
  10. 进程虚拟地址空间之数据分区存放【转】
  11. Unity 和腾讯游戏成立联合创新实验室:从技术创新探索游戏产品新模式和概念
  12. RDD Persistence持久化
  13. caffe-yolov3:编译安装报错:fatal error: caffe/caffe.hpp: No such file or directory
  14. linux lite安装教程,Linux Lite第一个获得Linux 4.14 及如何安装它
  15. 【福利派送】高质量AI书籍免费送给大家
  16. Java编程:查找算法——顺序查找、二分查找、插值查找、斐波那契查找
  17. 等待事件之日志等待事件解决的方法
  18. expect+shell脚本实现免密登录
  19. 【学习笔记】图像超分辨
  20. 计算机网络(六)应用层

热门文章

  1. HTML_炫酷的按钮样式
  2. ANDROID集成支付宝SDK_APP应用支付宝开发DEMO
  3. baseline的骨骼检测流程记录
  4. Express 路由
  5. java 回合制抛物线游戏_回合制抛物线射击游戏《坦克总动》重磅来袭!
  6. SC0095-AT32F437使用USB挂载SD卡作为U盘使用
  7. Flutter Convex Bottom 底部导航
  8. IOS通用链接处理(Universal Links),apple-app-site-association
  9. 腾讯回应“暴力裁员”
  10. 手游传奇架设教程_传奇手游战神引擎架设教程