55 Jump Game 是否能跳到最後

2021-09-23 17:08:41 字數 1276 閱讀 2029

陣列中每個元素表示從當前位置能夠跳的步數,判斷是否能跳到最後。

思考:本題在solution中有4中解法,(方法1)dfs,實際執行會超時,因為會有陣列很長的case. (方法2)dfs優化版,不過也會超時。(方法3)動態規劃。(方法4)貪心演算法。

解法:(方法1)dfs, 雖然會超時,不過這種解法需要掌握。

bool canjumpfrompos1(int pos, vector& nums) 

int further_jump = min(pos + nums[pos], (int)nums.size() - 1);

for (int i = pos + 1; i <= further_jump; ++i)

}return false;

}bool canjump1(vector& nums)

(方法2)dfs 剪枝優化

enum index ;

// time limit exceeded

bool canjumpfrompos2(int pos, vector& nums)

if (sign[pos] != unknow)

int further_jump = min(pos + nums[pos], (int)nums.size() - 1);

for (int i = pos + 1; i <= further_jump; ++i)

}sign[pos] = bad;

return false;

}bool canjump2(vector& nums)

sign[nums.size() - 1] = good;

return canjumpfrompos2(0, nums);

}

(方法3)dp

// solution 3   556 ms	10.4 mb

bool canju***(vector& nums)

sign[nums.size() - 1] = good;

for (int pos = nums.size() - 2; pos >= 0; --pos) }}

return sign[0] == good;

}

(方法4) 貪心演算法

// solution 4 greedy

bool canjump(vector& nums)

}return last_pos == 0;

}

Referer 跳轉是否能拿到

目前web開發有以下幾種頁面跳轉方式 1 使用requestdispatcher跳轉。該方式不支援跨域目的頁面也無法取得referer requestdispatcher rd request.getrequestdispatcher url rd.forward request,response ...

是否能通過考試

description 小張想要通過明天的考試。他知道考題的分值分布,也知道考試中要拿到每乙個題目需要耗費的時間。假設考試時長為h,共n個題目,需要拿到p分才能通過考試。現在已知每個考題的得分與耗時,請你判斷小張能否通過合理安排時間,而通過考試,並給出通過考試的最短時間。input 輸入第一行為測試...

Linux檢視web是否能訪問

檢視辦法 1.查詢一下 tomcat 程序是否存在 ps ef grep tomcat 如果程序存在的話那麼就直接在機器內部訪問一下 wget http localhost port 如果可以得到頁面的話,就說明 tomcat 啟動並且可以訪問,否則把 tomcat 關掉再重啟。2.如果上面方式驗證...