天津工程建设招标网站,怎么做网上直营店网站,快速网站轻松排名,网站title标点改动 影响题目 题目链接#xff1a; https://www.nowcoder.com/practice/23407eccb76447038d7c0f568370c1bd
思路
答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] [i]#xff0c;
有一个maxReach#xff0c;遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReac…题目 题目链接 https://www.nowcoder.com/practice/23407eccb76447038d7c0f568370c1bd
思路
答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] [i]
有一个maxReach遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReach要大
则说明这点跳不过去 return false否则的话这点可以跳过去
只要能遍历完就可以return true了参考答案Java
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可*** param nums int整型一维数组* return bool布尔型*/public boolean canJump (int[] nums) {//DP/*答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] [i]有一个maxReach遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReach要大则说明这点跳不过去 return false否则的话这点可以跳过去只要能遍历完就可以return true了*/int maxReach nums[0];for (int i 1; i nums.length ; i) {if (i maxReach) {maxReach Math.max(maxReach, nums[i] i);} else {return false;}}return true;}
}参考答案Go
package main/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可*** param nums int整型一维数组* return bool布尔型*/
func canJump(nums []int) bool {//DP/*答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] [i]有一个maxReach遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReach要大则说明这点跳不过去 return false否则的话这点可以跳过去只要能遍历完就可以return true了*/maxReach : nums[0]for i : 1; i len(nums); i {if i maxReach {cur : nums[i] iif cur maxReach {maxReach cur}} else {return false}}return true
}
参考答案PHP
?php/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** * param nums int整型一维数组 * return bool布尔型*/
function canJump( $nums )
{//DP/*答案说的merge区间就是每个A[i]的地方能跳到的最远坐标是A[i] [i]有一个maxReach遍历一遍A[i], 不断刷新MaxReach, 如果某个i 位置比maxReach要大则说明这点跳不过去 return false否则的话这点可以跳过去只要能遍历完就可以return true了*/$maxReach $nums[0];for($i1;$icount($nums);$i){if($i$maxReach){$cur $nums[$i]$i;if($cur$maxReach){$maxReach $cur;}}else{return false;}}return true;
}