国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

LeetCode Jump Game II

2019-11-11 06:47:52
字體:
供稿:網(wǎng)友

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array rePResents your maximum jump length at that position.

Your goal is to reach the last index in the minimum number of jumps.

For example:Given array A = [2,3,1,1,4]

The minimum number of jumps to reach the last index is 2. (Jump 1 step from index 0 to 1, then 3 steps to the last index.)

Note:You can assume that you can always reach the last index.

思路一:將所有的情況都考慮進去,基于遞歸進行暴力搜索

代碼如下:

class Solution {public:    void oneJump(vector<int>& nums,int& minJump,int& count,int& pos)    {        if(pos == nums.size()-1)        {            if(minJump > count)            {                minJump = count;                return;            }        }                    for(int i=pos+1;i<=pos+nums[pos];i++)        {            if(i>nums.size()-1)                return;            count++;            oneJump(nums,minJump,count,i);            count--;        }    }        int jump(vector<int>& nums) {        int minJump = 0x7fffffff;        int count = 0;        int pos = 0;        oneJump(nums,minJump,count,pos);        return minJump;        }};結(jié)果是用時超時,需要進行剪枝或?qū)ふ腋玫姆椒?p>

思路二:仔細分析題目發(fā)現(xiàn),題目關心的是最少通過幾步達到,對于具體的到達選擇并不關心,并且必然會達到。所以可以將其轉(zhuǎn)換為廣度優(yōu)先算法模型,然后采用貪心原則進行求解,

代碼如下:

class Solution {public:    int jump(vector<int>& nums) {        if(nums.size() < 2)            return 0;                    int level=0,currentMax=0,nextMax=0;        int pos=0;        while(currentMax-pos+1>0)        {            level++;            for(;pos<=currentMax;pos++)            {                if(pos+nums[pos] > nextMax)                    nextMax = pos+nums[pos];                if(nextMax >= nums.size()-1)                    return level;            }            currentMax = nextMax;        }        return 0;    }};


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 邵武市| 梁山县| 嘉黎县| 盐山县| 德清县| 崇文区| 图们市| 博爱县| 湘潭市| 温宿县| 抚顺县| 武邑县| 三门县| 手机| 鲜城| 遵义市| 山东省| 邢台县| 阿勒泰市| 托克托县| 玛多县| 巩义市| 定兴县| 喜德县| 靖宇县| 股票| 深州市| 高邮市| 宁国市| 桐柏县| 北流市| 马关县| 乐至县| 灵山县| 尚志市| 郁南县| 中西区| 文化| 新巴尔虎左旗| 楚雄市| 应用必备|