列舉:基於逐個嘗試答案的一種問題求解策略
例題一:完美立方
解題思路:
看看n以內有多少四種組合,每個都試一遍
四重迴圈列舉a,b,c,d,a在最外層,d在最裡層,每一層都是從小到大列舉,
a列舉範圍[2,n]
b範圍[2,a-1]
c範圍[b,a-1]
d範圍[c,a-1]
答案
#include
#include
using namespace std;
intmain()
}}}}
return0;
}
例題二:生理週期
思路:從d+1天開始,一直試到第21252天,判斷每一天是否滿足要求(k-p)%23= =0&&(k-e)%28= =0&&(k-i)%33= =0
如何試的更快?
跳著試!
先找第乙個體力高峰,因為兩個體力高峰之間的日子不可能是3個高峰同時出現的日子,因為它絕對不是體力高峰,然後再找體力高峰和智力高峰同時出現的日子出現的日子,同樣在這兩個之間肯定不是三個高峰同時出現的日子,因為它絕不是 體力高峰和智力高峰同時出現的日子
#include
#include
using
namespace std;
#define n 21252
intmain()
return0;
}
例題三:稱硬幣 演算法,第一周
題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1...
Coursera演算法第一周
現在是第三週,剛把第一周做完,要抓緊了。首先是merge sort演算法,採用二分然後遞迴的方法,將時間優化到o nlog n def sort split a,b l a len a l b len b l l a l b l i 0 j 0 for k in range l if i l a a...
演算法訓練第一周
leetcode 283 移動零 基礎寫法 class solution 設定指標i j 遍歷nums i 當nums i 0 即當值不為0時 nums j nums i j int j 0 for int i 0 i i 可以使i j指標同時向右移 只有當nums i 0 j才移動 造成j指標是慢...