Java算法(4):跳躍游戲

給定一個非負整數(shù)數(shù)組,你最初位于數(shù)組的第一個位置。數(shù)組中的每個元素代表你在該位置可以跳躍的最大長度。使用最少跳躍次數(shù)達到數(shù)組最后一個位置。

輸入: [2,3,1,1,4]
輸出: 2
解釋: 從位置 0 到位置 1 跳 1 步, 然后跳 3 步到達最后一個位置。

解題思路:

貪心算法

代碼:
    public int jump(int[] nums) {
        int length = nums.length;
        int end = 0, maxPosition = 0, step = 0;
        for (int i = 0; i < length - 1; i++) {
            maxPosition = Math.max(maxPosition, i + nums[i]);
            if (end == i) {
                end = maxPosition;
                step++;
            }
        }
        return step;
    }
復(fù)雜度分析:
  • 時間復(fù)雜度:O(N),需要遍歷數(shù)組長度
  • 空間復(fù)雜度:O(1),只需要常數(shù)空間
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目要求 給定一個非負整數(shù)數(shù)組,你最初位于數(shù)組的第一個位置。數(shù)組中的每個元素代表你在該位置可以跳躍的最大長度。你的...
    Jimhou閱讀 711評論 0 0
  • 題目 給定一個非負整數(shù)數(shù)組,你最初位于數(shù)組的第一個位置。 數(shù)組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷...
    _涼城閱讀 256評論 0 1
  • 題目描述 給定一個非負整數(shù)數(shù)組,你最初位于數(shù)組的第一個位置。數(shù)組中的每個元素代表你在該位置可以跳躍的最大長度。判斷...
    李偉13閱讀 128評論 0 0
  • 關(guān)注公眾號《長歌大腿》,發(fā)送“機器學(xué)習(xí)”關(guān)鍵字,可獲取包含機器學(xué)習(xí)(包含深度學(xué)習(xí)),統(tǒng)計概率,優(yōu)化算法等系列文本與...
    伊凡vnir閱讀 647評論 0 0
  • LeetCode題目鏈接鏈接 https://leetcode-cn.com/problems/jump-game...
    Mastergad閱讀 829評論 0 0

友情鏈接更多精彩內(nèi)容