陣列中每個元素表示從當前位置能夠跳的步數,判斷是否能跳到最後。
思考:本題在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.如果上面方式驗證...