1. 程式人生 > 資訊 >國行 Switch 遊戲《馬力歐卡丁車實況:家庭賽車場》正式發售:549 元,含實體遙控車

國行 Switch 遊戲《馬力歐卡丁車實況:家庭賽車場》正式發售:549 元,含實體遙控車

描述

給定一個非負整數陣列nums,你最初位於陣列的第一個下標。

陣列中的每個元素代表你在該位置可以跳躍的最大長度。

判斷你是否能夠到達最後一個下標。

連結

55. 跳躍遊戲 - 力扣(LeetCode) (leetcode-cn.com)

解法

貪心方法

  • 這個問題就轉化為跳躍覆蓋範圍究竟可不可以覆蓋到終點!
  • 每次移動取最大跳躍步數(得到最大的覆蓋範圍),每移動一個單位,就更新最大覆蓋範圍。
  • 貪心演算法區域性最優解:每次取最大跳躍步數(取最大覆蓋範圍),整體最優解:最後得到整體最大覆蓋範圍,看是否能到終點。
  • 區域性最優推出全域性最優,找不出反例,試試貪心!
 1 class Solution {
2 public boolean canJump(int[] nums) { 3 if (nums.length <2) return true; 4 //覆蓋範圍 5 int RangeCover = nums[0]; 6 //在覆蓋範圍內更新最大的覆蓋範圍 7 for (int i = 0; i <= RangeCover; i++) { 8 RangeCover = Math.max(RangeCover, i + nums[i]); 9 if
(RangeCover >= nums.length - 1) { 10 return true; 11 } 12 } 13 return false; 14 } 15 }

參考

carl