leetcode55
bool canJump(vector<int>& nums) {
int reach = nums[];
for (int i = ; i < nums.size() && reach >= i; i++)
{
if (i + nums[i] > reach)
{
reach = i + nums[i]; //贪心策略
}
}
return reach >= (nums.size() - ) ? true : false;
}
这是贪心算法类型的题目。
补充一个python的实现:
class Solution:
def canJump(self, nums: 'List[int]') -> 'bool':
n = len(nums)
if n == 1:
return True
i = n - 1
j = i - 1
nexti = i
while i>= 0:
tag = False
while j >= 0:
diff = i - j
val = nums[j]
if diff <= val:
nexti = j
tag = True
if tag:
i = nexti
j = i - 1
break
else:
j -= 1
if not tag:
return False
if nexti == 0:
return True
return True
补充一个双指针思路的解决方案,使用python实现:
class Solution:
def canJump(self, nums: 'List[int]') -> bool:
n = len(nums)
j = #可以跳到的最远的索引
for i in range(n):
if i > j:#说明有无法跳跃的索引
return False
j = max(j,i+nums[i])#更新最远的索引
if j >= n - :#达到最右索引
return True
return False
leetcode55的更多相关文章
- [array] leetcode-55. Jump Game - Medium
leetcode-55. Jump Game - Medium descrition Given an array of non-negative integers, you are initiall ...
- [LeetCode55]Jump Game
题目: Given an array of non-negative integers, you are initially positioned at the first index of the ...
- [Swift]LeetCode55. 跳跃游戏 | Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- leetcode55:跳跃游戏
解题思路1: 从头往后找每一个为0的元素,判断这个0能够跳过,所有的0都能跳过,则返回True,否则返回False 解题思路2: 从前往后遍历数组,设置一个访问到当前位置i时最远可调到的距离maxle ...
- leetcode55—Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- 【1】【经典回溯、动态规划、贪心】【leetcode-55】跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4]输出: true解释 ...
- leetcode-55. Jump Game · Array
题面 这个题面挺简单的,不难理解.给定非负数组,每一个元素都可以看作是一个格子.其中每一个元素值都代表当前可跳跃的格子数,判断是否可以到达最后的格子. 样例 Input: [2,3,1,1,4] Ou ...
- Leetcode55. Jump Game跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] 输出: true ...
- 动态规划——leetcode55、跳跃游戏
1.题目描述: 2.解题方法:动态规划 动态规划解题步骤: 1.确定状态: 最后一步:如果能跳到最后一个下标,我们考虑他的最后一步到n-1(最后一个下标),这一步是从 i 跳过来的,i<n-1 ...
随机推荐
- wire [7:0] regAddr; 理解
首先要指出的是wire[7,0]a和wire[8,1]a这样的表达在verilog中是错误的,应该写成wire[7:0]a和wire[8:1]a wire[7:0]a表示定义了一个wire型数据,该数 ...
- mysql-5.7.23-winx64.zip安装教程
请参考这篇文章:https://www.jianshu.com/p/94647c0c98c4
- 自动化测试-9.selenium多窗口句柄的切换
前言 有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口了.获取窗口的唯一标识用句柄表示,所以只需要切换句柄,我们就能在多个页面上灵活自如的操作了. 一.认识多窗 ...
- 利用exosip DNS CACHE自定义SIP服务器地址和端口
文章标题可能表述不清,罢了,我这里描述一个场景: 当使用exosip开发UA时,服务器地址是域名example.com和端口形式,但存在两个限制: 1.example.com没有DNS记录.没有NAP ...
- Gym101889E. Enigma(bfs+数位)
比赛链接:传送门 题目大意: 求一个十进制大数S(有部分数位为"?")能被N整除时的最小值,如果没有办法被N整除,输出"*". 思路: 一个数位上的数值增加1后 ...
- 如何在Linux系统下挂载光盘
工具/原料 Linux 方法/步骤 找到光盘的完整路径名.在命令行输入:ls -l /dev | grep cdrom. 可以看到光盘的名字叫做:cdrom1.然后在命令行执行: mount /d ...
- 13.python错误和异常
一.错误和异常1.程序中的错误分为俩种:(1)语法错误:不按照语言的规则,必须在程序执行前就改正(2)逻辑错误2.异常就是程序运行时发生错误的信号,分为三部分(1)Traceback:异常追踪的信息( ...
- Yii2项目高级模版 三个模块在同一个目录下的重定向配置
最近做项目用到的,非常好用. 修改 advanced/backend/config/main.PHP 文件如下: return [ 'homeUrl' => '/admin', 'compone ...
- Hyper-V 连网备忘
最近总是把简单问题复杂化 1.内网连接: Hyper-V 上网一个内网连接足矣,宿主机与客户机可以互访,而且都可以上网.创建一个内网连接,默认配置界面如下: 然后把本地网卡共享给这个新建的内网连接,把 ...
- PythonStudy——字符串、列表、元组、字典、集合 (str、list、tuple、dict、set)常用方法总结
字符串: # 字符串类型的一些操作(str)st1='hello world 'print(st1[0]) # 根据字符串索引来取字符h 找不到直接崩print(st1[-1]) # 根据索引倒取st ...