前言:
遞迴拓展:全排列&整數劃分
題意:
給定一數字n,判斷1~n中,恰好有兩個素因子的數的個數
題解:
由於n<=3000,所以暴力可以過,對1~n中每個數枚舉判斷即可
題意:
給乙個由多個單詞組成的字串,對每個單詞逆序輸出
題解:
直接遍歷一遍陣列,然後遇到空格對前面的單詞逆序輸出即可,當然別忘記了最後乙個單詞
題意:
給定兩個字串,判斷兩個字串**現的字元種類和每個字元的數量是否相同
是,輸出:true,否,輸出:false
題解:
當然會c++,map肯定最香了。
不會的話,也沒關係,由於字元對應的ascii碼,最大也不過才127,於是我們開個130的陣列即可,感覺這方法比map要更好
題意:
給定矩陣的四個頂點和需要判斷的乙個點,求點是否在矩形內
題解:
如果不會計算幾何和叉乘等相關知識的話,的確會有點難,之前寫過一篇部落格,那裡有詳講:
判斷點是否在矩形內
題意:
青蛙可以一次跳一級,一次跳兩級…一次跳n級,求青蛙跳n級有多少種方案
題解:
f(n)=f(1)+f(2)+f(3)+…+f(n-1)+1
f(n-1)=f(1)+f(2)+f(3)+…+f(n-2)+1
兩者相合併得:
f(n)=2*f(n-1)
這樣其實就可以做出來了,
但是還可以繼續推到一般式,而不用遞推式
f(1)=1
f(2)=2
f(3)=4
f(4)=8
…可以推出:
f(n)=2^(n-1)
題意:
給定乙個整數n,表示字串的長度,其中字串由a~z;n=1時就是"a"
題解:
經典的遞迴運用之——全排列
void
perm
(int s,
int e)
printf
("\n");
return;}
for(
int i=s;i<=e;i++
)return
;}
呼叫perm(0,n-1)即可
題意:
1~9,求構成兩個數,滿足num1/num2=1/3;
題解:
同樣是全排列問題
題意:
給定乙個整數n,求能劃分的方案數
題解:
經典遞迴運用之——整數劃分
}呼叫fx(n,n)即可
題意:
n個人來回報數,當報的數為7的倍數或者包含7時,拍掌
問編號為m的人,拍掌k次對應的數
題解:
經典的約瑟夫環問題
由於資料不大,可以直接模擬
題意:
兩個相同的盒子,開始時:乙個裝n個球,乙個裝乙個球,alice和bob輪流操作
每次選擇乙個球少的盒子,將盒子中的球倒光。
當無法操作時,那個人就輸了
題解:
簡單博弈
intfx(
int n)
判斷fx(n)即 演算法設計與分析
輸入輸出 確定性有窮性 np類問題是非確定性計算模型下的易驗證問題類。所有可以在多項式時間內求解的判定問題構成p類問題 1 二分搜尋技術 二分搜尋演算法的基本思路是對給定已排好序的n個元素a 0 n 1 在這n個元素中找出乙個特定元素x。運用分治的思想,將n個元素以n 2為中心對半分。if x a ...
演算法分析與設計
分析,此題可以用動態規劃來做。子問題為 max i max i 1 0 max i 1 nums i nums i max i 表示以nums i 結尾的子串的最大和,最後返回最大的那個即為所求,複雜度為o n class solution return max 另一種實現方法,更加簡潔,即從前往後...
演算法設計與分析
ylbtech miscellaneos 演算法設計與分析 a,返回頂部1,演算法設計與分析 是2009年國防工業出版社出版的圖書,作者是張德富。書主要取材於演算法設計與分析領域的經典內容,並介紹了演算法設計的發展趨勢。內容主要包括非常經典的演算法設計技術,例如遞迴與分治 動態規劃 貪心 回溯 分支...