1. 程式人生 > >貪心演算法跳躍遊戲

貪心演算法跳躍遊戲

/*
*非負整數的陣列,陣列中的數字代表的是你能跳躍的距離。
*問題是根據當前的陣列中的資料資訊,是否可以跳躍到最後
*貪心演算法,怎麼貪心
*最終是竭盡所能跳的最遠處
*每次走一個位置的時候能跳的最遠,那麼最終的時候一定是跳的最遠的
*因此用一個變數記錄當前可以走的長度,另一個變數記錄當前的陣列下標的位置 
*每次更新陣列下標的時候更新可以跳的跳數 
*/
#include "iostream"
using namespace std;


bool f()
{
int n = 0;
int a[501] = {0};
cin>>n;
 for(int i = 0;i<n;i++)
 {
cin>>a[i]; 
    } 
if(a[0] == 0)
return false;
    int num = a[0];
    //在這裡體現貪心,總是找當前能走的最長步長 
    for(int i = 1;i < n-1;i++)
    {
    num--;//走一步進入下一個 
if(num<a[i])//和下一個進行比較,找一個最大的
{
num = a[i];

if(num==0)
{
return false;
}
}
//這裡主要單獨考慮最後一個,如果倒數第二個還剩下步數的情況下,一定可以走到最後 
if(num>0)
return true;
else
return false;
}


int main()
{
if(f())
{
cout<<"true";
}
else
{
cout<<"false"; 
}
return 0;
}

相關推薦

貪心演算法跳躍遊戲

/**非負整數的陣列,陣列中的數字代表的是你能跳躍的距離。*問題是根據當前的陣列中的資料資訊,是否可以跳躍到最後*貪心演算法,怎麼貪心*最終是竭盡所能跳的最遠處*每次走一個位置的時候能跳的最遠,那麼最終的時候一定是跳的最遠的*因此用一個變數記錄當前可以走的長度,另一個變數記

LeetCode 55.跳躍遊戲 貪心演算法

給定一個非負整數陣列,你最初位於陣列的第一個位置。 陣列中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例 1: 輸入: [2,3,1,1,4] 輸出: true 解釋: 從位置 0 到 1 跳 1 步, 然後跳 3 步到達最後一個位置。

LeetCode 跳躍遊戲 II 貪心演算法

給定一個非負整數陣列,你最初位於陣列的第一個位置。 陣列中的每個元素代表你在該位置可以跳躍的最大長度。 你的目標是使用最少的跳躍次數到達陣列的最後一個位置。 示例: 輸入: [2,3,1,1,4] 輸出: 2 解釋: 跳到最後一個位置的最小跳躍數是 2。   從下標為

leetcode:跳躍遊戲II(java貪心演算法

package LeetCode; public class Jump { public int jump(int[] nums) { //跳躍次數 int cont=0; //跳出條件 int n=nums.length; //為了儲存每次

LeetCode-45.跳躍遊戲II(考察點:貪心演算法

給定一個非負整數陣列,你最初位於陣列的第一個位置。 陣列中的每個元素代表你在該位置可以跳躍的最大長度。 你的目標是使用最少的跳躍次數到達陣列的最後一個位置。 示例: 輸入: [2,3,1,1,4] 輸出: 2 解釋: 跳到最後一個位置的最小跳躍數是 2。 從下

貪心算法-跳躍遊戲

sample clu itl 判斷 main %d 數據 str 算法 給定一個非負整數數組,假定你的初始位置為數組第一個下標。 數組中的每個元素代表你在那個位置能夠跳躍的最大長度。 你的目標是到達最後一個下標,並且使用最少的跳躍次數。 例如: A=[2,3,1,1,4

Leetcode - 跳躍遊戲(貪心)

https://leetcode-cn.com/problems/jump-game/ 題目描述 給定一個非負整數陣列,你最初位於陣列的第一個位置。 陣列中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例 1: 輸入: [2,

leetcode 55&&45 Jump Game 跳躍遊戲貪心

一、 思路: 這個題中等難度,只是問能不能調到最後的位置 需要維護的是當前能夠跳的最遠的地方 class Solution { public boolean canJump(int[] nums) { int max_index=0;

Leetcode演算法——45、跳躍遊戲II

給定一個非負整數的陣列,每一個元素表示從當前位置開始跳躍一次的最大長度。 你一開始站在第一個索引的位置。 你的目標是用最少的跳躍次數到達最後一個索引位置。輸出跳躍次數。 備註: 假設肯定可以跳到最後一個位置。 示例: Input: [2,3,1,1,4] Output

Leetcode演算法——55、跳躍遊戲

給定一個非負整數的陣列,每一個元素表示從當前位置開始跳躍一次的最大長度。 你一開始站在第一個索引的位置。 判斷你是否可以跳躍到最後一個索引位置。 示例: Example 1: Input: [2,3,1,1,4] Output: true Explanation: Jum

演算法學習——貪心演算法之取數遊戲(顯示兩端數字)

演算法描述 取數遊戲:A與B玩取數遊戲,隨機產生的2n個整數排成一列,只顯示兩端的整數,只有當A或B取完數會顯示下一個數或者是前一個數(若是取末尾的數) A的取數策略:採用貪心策略,每次取數取兩個數中最大的那個數 B的取數策略:當兩個數相差較大,取大的那個數,若相差為1,則在這兩個數中隨意取一個數

LeetCode 55題 跳躍遊戲演算法介紹 Python3

先po上原題: 給定一個非負整數陣列,你最初位於陣列的第一個位置。 陣列中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例 1: 輸入: [2,3,1,1,4] 輸出: true 解釋: 從位置 0 到 1 跳 1 步, 然後跳

【LeetCode-演算法】55. 跳躍遊戲(Java實現)

題目 給定一個非負整數陣列,你最初位於陣列的第一個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後一個位置。 示例1 輸入: [2,3,1,1,4] 輸出: true 解釋: 從位置 0 到 1 跳 1 步, 然後跳 3 步到達最後

LeetCode 45. Jump Game II 跳躍遊戲II,求最少跳躍次數 (貪心)

給定一個非負整數陣列,你最初位於陣列的第一個位置。 陣列中的每個元素代表你在該位置可以跳躍的最大長度。 你的目標是使用最少的跳躍次數到達陣列的最後一個位置。 示例: 輸入: [2,3,1,1,4] 輸出: 2 解釋: 跳到最後一個位置的最小跳躍數

JAVA程式碼—演算法基礎:跳躍遊戲(II)

跳躍遊戲(Jump Game II) 問題描述: Given an array of non-negative integers, you are initially positioned at the first index of the array.

跳躍遊戲(貪心)

時間限制 1000ms 記憶體限制 65536K 題目描述 給定一個非負整數陣列,假定你的初始位置為陣列第一個下標。 陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。 請確認你是否能夠跳躍到陣列的最後一個下標。 例如:A = [2,3,1,1,4] 能夠跳躍

演算法練習---跳躍遊戲二(動態規劃)

題目描述: 給定一個非負整數陣列,假定你的初始位置為陣列第一個下標。 陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。 你的目標是到達最後一個下標,並且使用最少的跳躍次數。 例如: A=[2,3,1,1,4],到達最後一個下標的最少跳躍次數為 2。(先跳躍 1

計蒜客 跳躍遊戲 貪心

對於當前位置可以到達的一堆點,我們肯定是選擇那個能到達最遠距離的點。 不如當前點1,能到達2,3,4. 而2能到達3,4;3能到達4;4能到達5,6,7. 那麼我們肯定是選擇從1直接到4,因為4能到達

LeetCode 55. Jump Game (跳躍遊戲

mat col lean osi pub 情況 you track rip Given an array of non-negative integers, you are initially positioned at the first index of the ar

LeetCode 55. 跳躍遊戲(Jump Game)

更新 你在 ron 索引 etc urn -- bre nbsp 題目描述 給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最後一個位置。 示例 1: 輸入: [2,3,1,1,4] 輸