Posted 灏忚┕瀛ython

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了相关的知识,希望对你有一定的参考价值。

鍔犳槦鏍?锛屼笉杩疯矾 锛侌煈?/span>

鏈枃鎶曠鑷▼搴忓憳灏忓惔鍚屽 銆?br>

鍦ㄥ涔犮€屾暟鎹粨鏋勫拰绠楁硶銆嶇殑杩囩▼涓紝鍥犱负浜轰範鎯簡骞抽摵鐩村彊鐨勬€濈淮鏂瑰紡锛屾墍浠ャ€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€嶈繖绉嶅甫寰幆姒傚康锛堢粫鏉ョ粫鍘伙級鐨勫線寰€鏄浉瀵规瘮杈冮毦浠ョ悊瑙g殑涓や釜鎶借薄鐭ヨ瘑鐐广€?/p>

绋嬪簭鍛樺皬鍚存墦绠椾娇鐢ㄥ姩鐢荤殑褰㈠紡鏉ュ府鍔╃悊瑙c€岄€掑綊銆嶏紝鐒跺悗閫氳繃銆岄€掑綊銆嶇殑姒傚康寤朵几鑷崇悊瑙c€屽姩鎬佽鍒掋€嶇畻娉曟€濇兂銆?/p>

浠€涔堟槸閫掑綊

鍏堜笅瀹氫箟锛?span class="mq-12">閫掑綊绠楁硶鏄竴绉嶇洿鎺ユ垨鑰呴棿鎺ヨ皟鐢ㄨ嚜韬嚱鏁版垨鑰呮柟娉曠殑绠楁硶銆?/strong>

閫氫織鏉ヨ锛岄€掑綊绠楁硶鐨勫疄璐ㄦ槸鎶婇棶棰樺垎瑙f垚瑙勬ā缂╁皬鐨勫悓绫婚棶棰樼殑瀛愰棶棰橈紝鐒跺悗閫掑綊璋冪敤鏂规硶鏉ヨ〃绀洪棶棰樼殑瑙c€傚畠鏈夊涓嬬壒鐐癸細

  • 1. 涓€涓棶棰樼殑瑙e彲浠ュ垎瑙d负鍑犱釜瀛愰棶棰樼殑瑙?/span>

  • 2. 杩欎釜闂涓庡垎瑙d箣鍚庣殑瀛愰棶棰橈紝闄や簡鏁版嵁瑙勬ā涓嶅悓锛屾眰瑙f€濊矾瀹屽叏涓€鏍?/span>

  • 3. 瀛樺湪閫掑綊缁堟鏉′欢锛屽嵆蹇呴』鏈変竴涓槑纭殑閫掑綊缁撴潫鏉′欢锛岀О涔嬩负閫掑綊鍑哄彛

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 閫掑綊鍔ㄧ敾

閫氳繃鍔ㄧ敾涓€涓竴涓壒鐐规潵杩涜鍒嗘瀽銆?/p>

1.涓€涓棶棰樼殑瑙e彲浠ュ垎瑙d负鍑犱釜瀛愰棶棰樼殑瑙?/span>

瀛愰棶棰樺氨鏄浉瀵逛笌鍏跺墠闈㈢殑闂鏁版嵁瑙勬ā鏇村皬鐨勯棶棰樸€?/p>

鍦ㄥ姩鍥句腑鈶犲彿闂锛堜竴鍧楀ぇ鍖哄煙锛夊垝鍒嗕负鈶″彿闂锛屸憽鍙烽棶棰樼敱涓や釜瀛愰棶棰橈紙涓ゅ潡涓尯鍩燂級缁勬垚銆?/p>

2. 杩欎釜闂涓庡垎瑙d箣鍚庣殑瀛愰棶棰橈紝闄や簡鏁版嵁瑙勬ā涓嶅悓锛屾眰瑙f€濊矾瀹屽叏涓€鏍?/span>

銆屸憼鍙峰垝鍒嗕负鈶″彿銆嶄笌銆屸憽鍙峰垝鍒嗕负鈶㈠彿銆嶇殑閫昏緫鏄竴鑷寸殑锛屾眰瑙f€濊矾鏄竴鏍风殑銆?/p>

3. 瀛樺湪閫掑綊缁堟鏉′欢锛屽嵆瀛樺湪閫掑綊鍑哄彛

鎶婇棶棰樺垎瑙d负瀛愰棶棰橈紝鎶婂瓙闂鍐嶅垎瑙d负瀛愬瓙闂锛屼竴灞備竴灞傚垎瑙d笅鍘伙紝涓嶈兘瀛樺湪鏃犻檺寰幆锛岃繖灏遍渶瑕佹湁缁堟鏉′欢銆?/p>

鈶犲彿鍒掑垎涓衡憽鍙凤紝鈶″彿鍒掑垎涓衡憿鍙凤紝鈶㈠彿鍒掑垎涓衡懀鍙凤紝鍒掑垎鍒扳懀鍙风殑鏃跺€欐瘡涓尯鍩熷彧鏈変竴涓笉鑳藉垝鍒嗙殑闂锛岃繖灏辫〃鏄庡瓨鍦ㄩ€掑綊缁堟鏉′欢銆?/p>

浠庨€掑綊鐨勭粡鍏哥ず渚嬪紑濮?/span>

涓€.鏁扮粍姹傚拰

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 鏁扮粍姹傚拰
1Sum(arr[0...n-1]) = arr[0] + Sum(arr[1...n-1])

鍚庨潰鐨?Sum 鍑芥暟瑕佽В鍐崇殑灏辨槸姣斿墠涓€涓?Sum 鏇村皬鐨勫悓涓€闂銆?/p>

1Sum(arr[1...n-1]) = arr[1] + Sum(arr[2...n-1])

浠ユ绫绘帹锛岀洿鍒板涓€涓┖鏁扮粍姹傚拰锛岀┖鏁扮粍鍜屼负 0 锛屾鏃跺彉鎴愪簡鏈€鍩烘湰鐨勯棶棰樸€?/p>

1Sum(arr[n-1...n-1] ) = arr[n-1] + Sum([])

浜?姹夎濉旈棶棰?/span>

姹夎濉旓紙Hanoi Tower锛夐棶棰樹篃鏄竴涓粡鍏哥殑閫掑綊闂锛岃闂鎻忚堪濡備笅锛?/p>

姹夎濉旈棶棰橈細鍙や唬鏈変竴涓⒌濉旓紝濉斿唴鏈変笁涓骇A銆丅銆丆锛孉搴т笂鏈?4涓洏瀛愶紝鐩樺瓙澶у皬涓嶇瓑锛屽ぇ鐨勫湪涓嬶紝灏忕殑鍦ㄤ笂銆傛湁涓€涓拰灏氭兂鎶婅繖涓洏瀛愪粠A搴хЩ鍒癇搴э紝浣嗘瘡娆″彧鑳藉厑璁哥Щ鍔ㄤ竴涓洏瀛愶紝骞朵笖鍦ㄧЩ鍔ㄨ繃绋嬩腑锛?涓骇涓婄殑鐩樺瓙濮嬬粓淇濇寔澶х洏鍦ㄤ笅锛屽皬鐩樺湪涓娿€?/p>

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 涓や釜鐩樺瓙
閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 涓変釜鐩樺瓙
  • 鈶? 濡傛灉鍙湁 1 涓洏瀛愶紝鍒欎笉闇€瑕佸埄鐢?B 濉旓紝鐩存帴灏嗙洏瀛愪粠 A 绉诲姩鍒?C 銆?/p>

  • 鈶?濡傛灉鏈?2 涓洏瀛愶紝鍙互鍏堝皢鐩樺瓙 2 涓婄殑鐩樺瓙 1 绉诲姩鍒?B 锛涘皢鐩樺瓙 2 绉诲姩鍒?C 锛涘皢鐩樺瓙 1 绉诲姩鍒?C 銆傝繖璇存槑浜嗭細鍙互鍊熷姪 B 灏?2 涓洏瀛愪粠 A 绉诲姩鍒?C 锛屽綋鐒讹紝涔熷彲浠ュ€熷姪 C 灏?2 涓洏瀛愪粠 A 绉诲姩鍒?B 銆?/p>

  • 鈶?濡傛灉鏈?3 涓洏瀛愶紝閭d箞鏍规嵁 2 涓洏瀛愮殑缁撹锛屽彲浠ュ€熷姪 C 灏嗙洏瀛?3 涓婄殑涓や釜鐩樺瓙浠?A 绉诲姩鍒?B 锛涘皢鐩樺瓙 3 浠?A 绉诲姩鍒?C 锛孉 鍙樻垚绌哄骇锛涘€熷姪 A 搴э紝灏?B 涓婄殑涓や釜鐩樺瓙绉诲姩鍒?C 銆?br>

  • 鈶?浠ユ绫绘帹锛屼笂杩扮殑鎬濊矾鍙互涓€鐩存墿灞曞埌 n 涓洏瀛愮殑鎯呭喌锛屽皢灏嗚緝灏忕殑 n-1涓洏瀛愮湅鍋氫竴涓暣浣擄紝涔熷氨鏄垜浠姹傜殑瀛愰棶棰橈紝浠ュ€熷姪 B 濉斾负渚嬶紝鍙互鍊熷姪绌哄 B 灏嗙洏瀛怉涓婇潰鐨?n-1 涓洏瀛愪粠 A 绉诲姩鍒?B 锛涘皢A 鏈€澶х殑鐩樺瓙绉诲姩鍒?C 锛?A 鍙樻垚绌哄锛涘€熷姪绌哄 A 锛屽皢 B 濉斾笂鐨?n-2 涓洏瀛愮Щ鍔ㄥ埌 A锛屽皢 C 鏈€澶х殑鐩樺瓙绉诲姩鍒?C锛?B 鍙樻垚绌哄銆傘€傘€?/p>

涓?鐖彴闃堕棶棰?/span>

闂鎻忚堪锛?/p>

涓€涓汉鐖ゼ姊紝姣忔鍙兘鐖?涓垨2涓彴闃讹紝鍋囪鏈塶涓彴闃讹紝閭d箞杩欎釜浜烘湁澶氬皯绉嶄笉鍚岀殑鐖ゼ姊柟娉曪紵

鍏堜粠绠€鍗曠殑寮€濮嬶紝浠?4 涓彴闃朵负渚嬶紝鍙互閫氳繃姣忔鐖?1 涓彴闃剁埇瀹屾ゼ姊細

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 姣忔鐖?1 涓彴闃?

鍙互閫氳繃鍏堢埇 2 涓彴闃讹紝鍓╀笅鐨勬瘡娆$埇 1 涓彴闃剁埇瀹屾ゼ姊?/p>

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 鍏堢埇 2 涓彴闃?

鍦ㄨ繖閲岋紝鍙互鎬濊€冧竴涓嬶細鍙互鏍规嵁绗竴姝ョ殑璧版硶鎶婃墍鏈夎蛋娉曞垎涓轰袱绫伙細

  • 鈶?绗竴绫绘槸绗竴姝ヨ蛋浜?1 涓彴闃?/span>

  • 鈶?绗簩绫绘槸绗竴姝ヨ蛋浜?2 涓彴闃?/span>

鎵€浠?n 涓彴闃剁殑璧版硶灏辩瓑浜庡厛璧?1 闃跺悗锛宯-1 涓彴闃剁殑璧版硶 锛岀劧鍚庡姞涓婂厛璧?2 闃跺悗锛宯-2 涓彴闃剁殑璧版硶銆?/p>

鐢ㄥ叕寮忚〃绀哄氨鏄細

f(n) = f(n-1)+f(n-2)

鏈変簡閫掓帹鍏紡锛岄€掑綊浠g爜鍩烘湰涓婂氨瀹屾垚浜嗕竴鍗娿€傞偅涔堟帴涓嬫潵鑰冭檻閫掑綊缁堟鏉′欢銆?/p>

褰撴湁涓€涓彴闃舵椂锛屾垜浠笉闇€瑕佸啀缁х画閫掑綊锛屽氨鍙湁涓€绉嶈蛋娉曘€?/p>

鎵€浠?f(1)=1銆?/p>

閫氳繃鐢?n = 2锛?code class="mq-96">n = 3 杩欐牱姣旇緝灏忕殑鏁拌瘯楠屼竴涓嬪悗鍙戠幇杩欎釜閫掑綊缁堟鏉′欢杩樹笉瓒冲銆?/p>

n = 2 鏃讹紝f(2) = f(1) + f(0)銆傚鏋滈€掑綊缁堟鏉′欢鍙湁涓€涓?code class="mq-100">f(1) = 1锛岄偅 f(2) 灏辨棤娉曟眰瑙o紝閫掑綊鏃犳硶缁撴潫銆? 
鎵€浠ラ櫎浜?f(1) = 1 杩欎竴涓€掑綊缁堟鏉′欢澶栵紝杩樿鏈?f(0) = 1锛岃〃绀鸿蛋 0 涓彴闃舵湁涓€绉嶈蛋娉曪紝浠庢€濈淮涓婁互鍙婂姩鍥句笂鏉ョ湅锛岃繖鏄惧緱鐨勬湁鐐逛笉绗﹀悎閫昏緫銆傛墍浠ヤ负浜嗕究浜庣悊瑙o紝鎶?f(2) = 2 浣滀负涓€绉嶇粓姝㈡潯浠讹紝琛ㄧず璧?2 涓彴闃讹紝鏈変袱绉嶈蛋娉曪紝涓€姝ヨ蛋瀹屾垨鑰呭垎涓ゆ鏉ヨ蛋銆?/p>

鎬荤粨濡備笅锛?/p>

  • 鈶?鍋囪鍙湁涓€涓彴闃讹紝閭d箞鍙湁涓€绉嶈蛋娉曪紝閭e氨鏄埇 1 涓彴闃?/span>

  • 鈶?鍋囪鏈変袱涓釜鍙伴樁锛岄偅涔堟湁涓ょ璧版硶锛屼竴姝ヨ蛋瀹屾垨鑰呭垎涓ゆ鏉ヨ蛋

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 閫掑綊缁堟鏉′欢

閫氳繃閫掑綊鏉′欢锛?/p>

1f(1) = 1;
2f(2) = 2;
3f(n) = f(n-1)+f(n-2)

寰堝鏄撴帹瀵煎嚭閫掑綊浠g爜锛?/p>

1int f(int n) {
2  if (n == 1return 1;
3  if (n == 2return 2;
4  return f(n-1) + f(n-2);
5}

閫氳繃涓婅堪涓変釜绀轰緥锛屾€荤粨涓€涓嬪浣曞啓閫掑綊浠g爜锛?/p>

  • 1.鎵惧埌濡備綍灏嗗ぇ闂鍒嗚В涓哄皬闂鐨勮寰?/span>

  • 2.閫氳繃瑙勫緥鍐欏嚭閫掓帹鍏紡

  • 3.閫氳繃閫掑綊鍏紡鐨勪复鐣岀偣鎺ㄦ暡鍑虹粓姝㈡潯浠?/span>

  • 4.灏嗛€掓帹鍏紡鍜岀粓姝㈡潯浠剁炕璇戞垚浠g爜

浠€涔堟槸鍔ㄦ€佽鍒?/span>

浠嬬粛鍔ㄦ€佽鍒掍箣鍓嶅厛浠嬬粛涓€涓嬪垎娌荤瓥鐣ワ紙Divide and Conquer锛夈€?/p>

鍒嗘不绛栫暐

灏嗗師闂鍒嗚В涓鸿嫢骞蹭釜瑙勬ā杈冨皬浣嗙被浼间簬鍘熼棶棰樼殑瀛愰棶棰橈紙Divide锛夛紝銆岄€掑綊銆嶇殑姹傝В杩欎簺瀛愰棶棰橈紙Conquer锛夛紝鐒跺悗鍐嶅悎骞惰繖浜涘瓙闂鐨勮В鏉ュ缓绔嬪師闂鐨勮В銆?/p>

鍥犱负鍦ㄦ眰瑙eぇ闂鏃讹紝闇€瑕侀€掑綊鐨勬眰灏忛棶棰橈紝鍥犳涓€鑸敤銆岄€掑綊銆嶇殑鏂规硶瀹炵幇锛屽嵆鑷《鍚戜笅銆?/p>

鍔ㄦ€佽鍒掞紙Dynamic Programming锛?/span>

鍔ㄦ€佽鍒掑叾瀹炲拰鍒嗘不绛栫暐鏄被浼肩殑锛屼篃鏄皢涓€涓師闂鍒嗚В涓鸿嫢骞蹭釜瑙勬ā杈冨皬鐨勫瓙闂锛岄€掑綊鐨勬眰瑙h繖浜涘瓙闂锛岀劧鍚庡悎骞跺瓙闂鐨勮В寰楀埌鍘熼棶棰樼殑瑙c€? 
鍖哄埆鍦ㄤ簬杩欎簺瀛愰棶棰樹細鏈夐噸鍙狅紝涓€涓瓙闂鍦ㄦ眰瑙e悗锛屽彲鑳戒細鍐嶆姹傝В锛屼簬鏄垜浠兂鍒板皢杩欎簺瀛愰棶棰樼殑瑙e瓨鍌ㄨ捣鏉?/strong>锛屽綋涓嬫鍐嶆姹傝В杩欎釜瀛愰棶棰樻椂锛岀洿鎺ユ嬁杩囨潵灏辨槸銆? 
鍏跺疄灏辨槸璇达紝鍔ㄦ€佽鍒掓墍瑙e喅鐨勯棶棰樻槸鍒嗘不绛栫暐鎵€瑙e喅闂鐨勪竴涓瓙闆嗭紝鍙槸杩欎釜瀛愰泦鏇撮€傚悎鐢ㄥ姩鎬佽鍒掓潵瑙e喅浠庤€屽緱鍒版洿灏忕殑杩愯鏃堕棿銆? 
鍗崇敤鍔ㄦ€佽鍒掕兘瑙e喅鐨勯棶棰樺垎娌荤瓥鐣ヨ偗瀹氳兘瑙e喅锛屽彧鏄繍琛屾椂闂撮暱浜?/strong>銆傚洜姝わ紝鍒嗘不绛栫暐涓€鑸敤鏉ヨВ鍐冲瓙闂鐩镐簰瀵圭珛鐨勯棶棰橈紝绉颁负鏍囧噯鍒嗘不锛岃€屽姩鎬佽鍒掔敤鏉ヨВ鍐冲瓙闂閲嶅彔鐨勯棶棰樸€?/p>

涓庛€屽垎娌荤瓥鐣ャ€嶃€屽姩鎬佽鍒掋€嶆蹇垫帴杩戠殑杩樻湁銆岃椽蹇冪畻娉曘€嶃€屽洖婧畻娉曘€嶏紝鐢变簬绡囧箙闄愬埗锛岀▼搴忓憳灏忓惔灏变笉鍦ㄨ繖杩涜灞曞紑锛屽湪鍚庣画鐨勬枃绔犱腑灏嗗垎鍒缁嗙殑浠嬬粛銆岃椽蹇冪畻娉曘€嶃€併€屽洖婧畻娉曘€嶃€併€屽垎娌荤畻娉曘€嶏紝鏁鍏虫敞锛氾級

灏嗐€屽姩鎬佽鍒掋€嶇殑姒傚康鍏抽敭鐐规娊绂诲嚭鏉ユ弿杩板氨鏄繖鏍风殑锛?/p>

  • 1.鍔ㄦ€佽鍒掓硶璇曞浘鍙В鍐虫瘡涓瓙闂涓€娆?/span>

  • 2.涓€鏃︽煇涓粰瀹氬瓙闂鐨勮В宸茬粡绠楀嚭锛屽垯灏嗗叾璁板繂鍖栧瓨鍌紝浠ヤ究涓嬫闇€瑕佸悓涓€涓瓙闂瑙d箣鏃剁洿鎺ユ煡琛ㄣ€?

浠庨€掑綊鍒板姩鎬佽鍒?/span>

杩樻槸浠?鐖彴闃?/strong> 涓轰緥锛屽鏋滀互閫掑綊鐨勬柟寮忚В鍐崇殑璇濓紝閭d箞杩欑鏂规硶鐨勬椂闂村鏉傚害涓篛(2^n)锛屽叿浣撶殑璁$畻鍙互鏌ョ湅绗旇€呬箣鍓嶇殑鏂囩珷 銆婂啺涓庣伀涔嬫瓕锛氭椂闂村鏉傚害涓庣┖闂村鏉傚害銆嬨€?/p>

鐩稿悓棰滆壊浠h〃鐫€ 鐖彴闃堕棶棰?鍦ㄩ€掑綊璁$畻杩囩▼涓噸澶嶈绠楃殑閮ㄥ垎銆?/p>

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 鐖彴闃剁殑鏃堕棿澶嶆潅搴?

閫氳繃鍥剧墖鍙互鍙戠幇涓€涓幇璞★紝鎴戜滑鏄?鑷《鍚戜笅 鐨勮繘琛岄€掑綊杩愮畻锛屾瘮濡傦細f(n) 鏄?code class="mq-180">f(n-1)涓?code class="mq-181">f(n-2)鐩稿姞锛?code class="mq-182">f(n-1) 鏄?code class="mq-183">f(n-2)涓?code class="mq-184">f(n-3)鐩稿姞銆?/p>

鎬濊€冧竴涓嬶細濡傛灉鍙嶈繃鏉ワ紝閲囧彇鑷簳鍚戜笂锛岀敤杩唬鐨勬柟寮忚繘琛屾帹瀵间細鎬庝箞鏍蜂簡锛?/p>

涓嬮潰閫氳繃琛ㄦ牸鏉ヨВ閲?f(n)鑷簳鍚戜笂鐨勬眰瑙h繃绋嬨€?/p>

鍙伴樁鏁?/span> 1 2 3 4 5 6 7 8 9
璧版硶鏁?/span> 1 2






琛ㄦ牸鐨勭涓€琛屼唬琛ㄤ簡妤兼鍙伴樁鐨勬暟鐩紝绗簩琛屼唬琛ㄤ簡鑻ュ共鍙伴樁瀵瑰簲鐨勮蛋娉曟暟銆?br>鍏朵腑f(1) = 1 鍜?f(2) = 2鏄墠闈㈡槑纭殑缁撴灉銆?/p>

绗竴娆¤凯浠o紝濡傛灉鍙伴樁鏁颁负 3 锛岄偅涔堣蛋娉曟暟涓?3 锛岄€氳繃 f(3) = f(2) + f(1)寰楁潵銆?/p>

鍙伴樁鏁?/span> 1 2 3 4 5 6 7 8 9
璧版硶鏁?/span> 1 2 3





绗簩娆¤凯浠o紝濡傛灉鍙伴樁鏁颁负 4 锛岄偅涔堣蛋娉曟暟涓?5 锛岄€氳繃 f(4) = f(3) + f(2)寰楁潵銆?/p>

鍙伴樁鏁?/span> 1 2 3 4 5 6 7 8 9
璧版硶鏁?/span> 1 2 3 5




閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
 </figure> 
 <p class=鐢辨鍙锛屾瘡涓€娆¤凯浠h繃绋嬩腑锛屽彧闇€瑕佷繚鐣欎箣鍓嶇殑涓や釜鐘舵€侊紝灏卞彲浠ユ帹鍒板嚭鏂扮殑鐘舵€併€?/p>

show me the code

 1int f(int n) {
2    if (n == 1return 1;
3    if (n == 2return 2;
4    // a 淇濆瓨鍊掓暟绗簩涓瓙鐘舵€佹暟鎹紝b 淇濆瓨鍊掓暟绗竴涓瓙鐘舵€佹暟鎹紝 temp 淇濆瓨褰撳墠鐘舵€佺殑鏁版嵁
5    int a = 1, b = 2;
6    int temp = a + b;
7    for (int i = 3; i <= n; i++) {
8        temp = a + b;
9        a = b;
10        b = temp; 
11    }
12    return temp; 
13}

绋嬪簭浠?i = 3 寮€濮嬭凯浠o紝涓€鐩村埌 i = n 缁撴潫銆傛瘡涓€娆¤凯浠o紝閮戒細璁$畻鍑哄涓€绾у彴闃剁殑璧版硶鏁伴噺銆傝凯浠h繃绋嬩腑鍙渶淇濈暀涓や釜涓存椂鍙橀噺 a 鍜?b 锛屽垎鍒唬琛ㄤ簡涓婁竴娆″拰涓婁笂娆¤凯浠g殑缁撴灉銆備负浜嗕究浜庣悊瑙o紝寮曞叆浜唗emp鍙橀噺銆倀emp浠h〃浜嗗綋鍓嶈凯浠g殑缁撴灉鍊笺€?/p>

鐪嬩竴鐪嬪嚭锛屼簨瀹炰笂骞舵病鏈夊鍔犲お澶氱殑浠g爜锛屽彧鏄畝鍗曠殑杩涜浜嗕紭鍖栵紝鏃堕棿澶嶆潅搴︿究灏遍檷涓篛(n)锛岃€岀┖闂村鏉傚害涔熷彉涓篛(1)锛岃繖锛屽氨鏄€屽姩鎬佽鍒掋€嶇殑寮哄ぇ锛?/p>

璇﹁В鍔ㄦ€佽鍒?/span>

銆屽姩鎬佽鍒掋€嶄腑鍖呭惈涓変釜閲嶈鐨勬蹇碉細

  • 銆愭渶浼樺瓙缁撴瀯銆?/span>

  • 銆愯竟鐣屻€?/span>

  • 銆愮姸鎬佽浆绉诲叕寮忋€?/span>

鍦ㄣ€?鐖彴闃堕棶棰?銆嶄腑

f(10) = f(9) + f(8) 鏄€愭渶浼樺瓙缁撴瀯銆? 
f(1) 涓?f(2) 鏄€愯竟鐣屻€? 
f(n) = f(n-1) + f(n-2) 銆愮姸鎬佽浆绉诲叕寮忋€?/p>

銆?鐖彴闃堕棶棰?銆?鍙槸鍔ㄦ€佽鍒掍腑鐩稿绠€鍗曠殑闂锛屽洜涓哄畠鍙湁涓€涓彉鍖栫淮搴︼紝濡傛灉娑夊強澶氫釜缁村害鐨勮瘽锛岄偅涔堥棶棰樺氨鍙樺緱澶嶆潅澶氫簡銆?/p>

闅剧偣灏卞湪浜庢壘鍑?銆屽姩鎬佽鍒掋€嶄腑鐨勮繖涓変釜姒傚康銆?/strong>

姣斿銆?鍥界帇鍜岄噾鐭块棶棰?銆嶃€?/p>

鍥界帇鍜岄噾鐭块棶棰?/span>

鏈変竴涓浗瀹跺彂鐜颁簡 5 搴ч噾鐭匡紝姣忓骇閲戠熆鐨勯粍閲戝偍閲忎笉鍚岋紝闇€瑕佸弬涓庢寲鎺樼殑宸ヤ汉鏁颁篃涓嶅悓銆傚弬涓庢寲鐭垮伐浜虹殑鎬绘暟鏄?10 浜恒€傛瘡搴ч噾鐭胯涔堝叏鎸栵紝瑕佷箞涓嶆寲锛屼笉鑳芥淳鍑轰竴鍗婁汉鎸栧彇涓€鍗婇噾鐭裤€傝姹傜敤绋嬪簭姹傝В鍑猴紝瑕佹兂寰楀埌灏藉彲鑳藉鐨勯粍閲戯紝搴旇閫夋嫨鎸栧彇鍝嚑搴ч噾鐭匡紵

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
   <figcaption class= 5 搴ч噾鐭?

鎵惧嚭 銆屽姩鎬佽鍒掋€嶄腑鐨勮繖涓変釜姒傚康

鍥界帇鍜岄噾鐭块棶棰樹腑鐨勩€愭渶浼樺瓙缁撴瀯銆?/span>
閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 鍥界帇鍜岄噾鐭块棶棰樹腑鐨勩€愭渶浼樺瓙缁撴瀯銆?

鍥界帇鍜岄噾鐭块棶棰樹腑鐨勩€愭渶浼樺瓙缁撴瀯銆戞湁涓や釜锛?/p>

  • 鈶?4 閲戠熆 10 宸ヤ汉鐨勬渶浼橀€夋嫨

  • 鈶?4 閲戠熆 锛?0 - 5锛?宸ヤ汉鐨勬渶浼橀€夋嫨

4 閲戠熆鐨勬渶浼橀€夋嫨涓?5 閲戠熆鐨勬渶浼橀€夋嫨涔嬮棿鐨勫叧绯绘槸

MAX[锛? 閲戠熆 10 宸ヤ汉鐨勬寲閲戞暟閲忥級锛岋紙4 閲戠熆 5 宸ヤ汉鐨勬寲閲戞暟閲?+ 绗?5 搴ч噾鐭跨殑鎸栭噾鏁伴噺锛塢

鍥界帇鍜岄噾鐭块棶棰樹腑鐨勩€愯竟鐣屻€?/span>

鍥界帇鍜岄噾鐭块棶棰樹腑鐨勩€愯竟鐣屻€?鏈変袱涓細

  • 鈶?褰撳彧鏈?1 搴ч噾鐭挎椂锛屽彧鑳芥寲杩欏骇鍞竴鐨勯噾鐭匡紝寰楀埌鐨勯粍閲戞暟閲忎负璇ラ噾鐭跨殑鏁伴噺

  • 鈶?褰撶粰瀹氱殑宸ヤ汉鏁伴噺涓嶅鎸?1 搴ч噾鐭挎椂锛岃幏鍙栫殑榛勯噾鏁伴噺涓?0

鍥界帇鍜岄噾鐭块棶棰樹腑鐨勩€愮姸鎬佽浆绉诲叕寮忋€?/span>

鎴戜滑鎶婇噾鐭挎暟閲忚涓?N锛屽伐浜烘暟璁句负 W锛岄噾鐭跨殑榛勯噾閲忚涓烘暟缁凣[]锛岄噾鐭跨殑鐢ㄥ伐閲忚涓烘暟缁凱[]锛屽緱鍒般€愮姸鎬佽浆绉诲叕寮忋€戯細

  • 杈圭晫鍊硷細F(n,w) = 0    (n <= 1, w < p[0])

  • F(n,w) = g[0]   (n==1, w >= p[0])

  • F(n,w) = F(n-1,w)    (n > 1, w < p[n-1])

  • F(n,w) = max(F(n-1,w),  F(n-1,w-p[n-1]) + g[n-1])    (n &gt; 1, w &gt;= p[n-1])

鍥界帇鍜岄噾鐭块棶棰樹腑鐨勩€愬疄鐜般€?/span>

鍏堥€氳繃鍑犲箙鍔ㄧ敾鏉ョ悊瑙?銆屽伐浜恒€?涓?銆岄噾鐭裤€?鎼厤鐨勬柟寮?/p>

1.鍙寲绗竴搴ч噾鐭?/span>
閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 鍙寲绗竴搴ч噾鐭?

鍦ㄥ彧鎸栫涓€搴ч噾鐭垮墠闈袱涓伐浜烘寲鐭挎敹鐩婁负 闆讹紝褰撴湁涓変釜宸ヤ汉鏃讹紝鎵嶅紑濮嬩骇鐢熸敹鐩婁负 200锛岃€屽悗鍗充娇澧炲姞鍐嶅鐨勫伐浜烘敹鐩婁笉鍙橈紝鍥犱负鍙湁涓€搴ч噾鐭垮彲鎸栥€?/p>

2.鎸栫涓€搴т笌绗簩搴ч噾鐭?/span>

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?><span class=     鎸栫涓€搴ч噾鐭夸笌绗簩搴ч噾鐭?/span>

鍦ㄧ涓€搴т笌绗簩搴ч噾鐭胯繖绉嶆儏鍐典腑锛屽墠闈袱涓伐浜烘寲鐭挎敹鐩婁负 闆讹紝鍥犱负 W < 3,鎵€浠(N,W) = F(N-1,W) = 0銆?/p>

褰撴湁 涓?涓伐浜烘椂锛屽皢鍏跺畨鎺掓寲绗?涓€ 涓噾鐭匡紝寮€濮嬩骇鐢熸敹鐩婁负 200銆?/p>

褰撴湁 鍥?涓伐浜烘椂锛屾寲鐭夸綅缃彉鍖栵紝灏嗗叾瀹夋帓鎸栫 浜?涓噾鐭匡紝寮€濮嬩骇鐢熸敹鐩婁负 300銆?/p>

褰撴湁 浜斻€佸叚 涓伐浜烘椂锛岀敱浜庡浜?鍥?涓伐浜虹殑浜烘暟涓嶈冻浠ュ幓寮€鎸栫 涓€ 搴х熆锛屽洜姝ゆ敹鐩婅繕鏄负 300銆?/p>

褰撴湁 涓?涓伐浜烘椂锛屽彲浠ュ悓鏃跺紑閲囩 涓€ 涓拰绗?浜?涓噾鐭匡紝寮€濮嬩骇鐢熸敹鐩婁负 500銆?/p>

3.鎸栧墠涓夊骇閲戠熆

杩欐槸銆屽浗鐜嬪拰閲戠熆銆?闂涓渶閲嶈鐨勪竴涓姩鐢讳箣涓€锛屽彲浠ュ鐪嬪嚑閬?/strong>    

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 鎸栧墠涓夊骇閲戠熆
4.鎸栧墠鍥涘骇閲戠熆

杩欐槸銆屽浗鐜嬪拰閲戠熆銆?闂涓渶閲嶈鐨勪竴涓姩鐢讳箣涓€锛屽彲浠ュ鐪嬪嚑閬?/strong>    

閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 鎸栧墠鍥涘骇閲戠熆

鍥界帇鍜岄噾鐭块棶棰樹腑鐨勩€愯寰嬨€?/span>

浠旂粏瑙傚療涓婇潰鐨勫嚑缁勫姩鐢诲彲浠ュ彂鐜帮細

  • 瀵规瘮銆屾寲绗竴搴т笌绗簩搴ч噾鐭裤€嶅拰銆屾寲鍓嶄笁搴ч噾鐭裤€嶏紝鍦ㄣ€屾寲鍓嶄笁搴ч噾鐭裤€嶄腑锛? 閲戠熆 7 宸ヤ汉鐨勬寲鐭挎敹鐩婏紝鏉ヨ嚜浜?2 閲戠熆 7 宸ヤ汉鍜? 2 閲戠熆 4 宸ヤ汉鐨勭粨鏋滐紝Max(500,300 + 350) = 650锛?/p>

  • 瀵规瘮銆屾寲鍓嶄笁搴ч噾鐭裤€嶅拰銆屾寲鍓嶅洓搴ч噾鐭裤€嶏紝鍦ㄣ€屾寲鍓嶅洓搴ч噾鐭裤€嶄腑锛? 閲戠熆 10 宸ヤ汉鐨勬寲鐭挎敹鐩婏紝鏉ヨ嚜浜?3 閲戠熆 10 宸ヤ汉鍜? 3 閲戠熆 5 宸ヤ汉鐨勭粨鏋滐紝Max(850,400 + 300) = 850锛?/p>

鍥界帇鍜岄噾鐭块棶棰樹腑鐨勩€愬姩鎬佽鍒掍唬鐮併€?/span>

 1浠g爜鏉ユ簮锛歨ttps://www.cnblogs.com/SDJL/archive/2008/08/22/1274312.html
2
3//maxGold[i][j] 淇濆瓨浜唅涓汉鎸栧墠j涓噾鐭胯兘澶熷緱鍒扮殑鏈€澶ч噾瀛愭暟锛岀瓑浜?nbsp;-1 鏃惰〃绀烘湭鐭?br> 4int maxGold[max_people][max_n];
5
6int GetMaxGold(int people, int mineNum){
7    int retMaxGold;                            //澹版槑杩斿洖鐨勬渶澶ч噾鐭挎暟閲?br> 8    //濡傛灉杩欎釜闂鏇剧粡璁$畻杩?br> 9    if(maxGold[people][mineNum] != -1){
10        retMaxGold = maxGold[people][mineNum]; //鑾峰緱淇濆瓨璧锋潵鐨勫€?br>11    }else if(mineNum == 0) {                   //濡傛灉浠呮湁涓€涓噾鐭挎椂 [ 瀵瑰簲鍔ㄦ€佽鍒掍腑鐨?杈圭晫"]
12        if(people >= peopleNeed[mineNum])      //褰撶粰鍑虹殑浜烘暟瓒冲寮€閲囪繖搴ч噾鐭?br>13            retMaxGold = gold[mineNum];        //寰楀埌鐨勬渶澶у€煎氨鏄繖搴ч噾鐭跨殑閲戝瓙鏁?br>14        else                                   //鍚﹀垯杩欏敮涓€鐨勪竴搴ч噾鐭夸篃涓嶈兘寮€閲?br>15            retMaxGold = 0;                    //寰楀埌鐨勬渶澶у€间负 0 涓噾瀛?br>16    }else if(people >= peopleNeed[mineNum])    // 濡傛灉浜哄寮€閲囪繖搴ч噾鐭縖瀵瑰簲鍔ㄦ€佽鍒掍腑鐨?鏈€浼樺瓙缁撴瀯"]
17    {
18        //鑰冭檻寮€閲囦笌涓嶅紑閲囦袱绉嶆儏鍐碉紝鍙栨渶澶у€?br>19        retMaxGold = max(
20                         GetMaxGold(people - peopleNeed[mineNum],mineNum - 1) + gold[mineNum],
21                         GetMaxGold(people,mineNum - 1)
22                         );
23    }else//鍚﹀垯缁欏嚭鐨勪汉涓嶅寮€閲囪繖搴ч噾鐭?nbsp;[ 瀵瑰簲鍔ㄦ€佽鍒掍腑鐨?鏈€浼樺瓙缁撴瀯"]
24    {
25        retMaxGold = GetMaxGold(people,mineNum - 1);     //浠呰€冭檻涓嶅紑閲囩殑鎯呭喌
26        maxGold[people][mineNum] = retMaxGold;
27    }
28    return retMaxGold;
29}
閲嶇濂芥枃 | 鐪嬪姩鐢昏交鏉剧悊瑙c€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€?> 
  <figcaption class= 鍔ㄦ€佽鍒掍唬鐮?

甯屾湜閫氳繃杩欑瘒鏂囩珷锛屽ぇ瀹惰兘瀵广€岄€掑綊銆嶄笌銆屽姩鎬佽鍒掋€嶆湁涓€瀹氱殑鐞嗚В銆傚悗缁皢浠ャ€屽姩鎬佽鍒掋€嶄负鍩虹鐮旂┒澶氶噸鑳屽寘绠楁硶銆佽开鏉扮壒鏂媺绠楁硶绛夋洿楂樻繁鐨勭畻娉曢棶棰橈紝鍚屾椂銆岄€掑綊銆嶇殑鏇村姒傚康涔熶細鍦ㄣ€屽垎娌荤畻娉曘€嶇珷鑺傚啀娆″欢浼革紝鏁瀵圭▼搴忓憳灏忓惔淇濇寔鍏虫敞锛氾級

鍏充簬浣滆€?/span>


鎴戠埍灏忚┕ 

 / 浠婃棩浜掑姩 / 

鐣欒█涓婚 : 绠€鐭殑璇濊鏄庝粈涔堟槸閫掑綊鎴栬€呬粈涔堟槸鍔ㄦ€佽鍒掞紝涔熷氨鏄鏈枃鐨勬敹鑾?銆?/span>


鐣欒█鏍煎紡 鈥斺€?/span> Day xx : blablabla 锛涜繖閲屽己璋冧笅 锛?/span>涓嶇鍚堜富棰樺拰鏍煎紡鐨勬墦鍗℃棤鏁堝櫌 锛?/span>搴斾粯宸簨鐨勬€佸害鏄笉瀹规槗甯嚜宸卞吇鎴愪竴涓ソ涔犳儻鐨勫憿 锛屼互鍚庢墦鍗″け璐ョ殑灏变笉涓€涓釜鍥炲浜?锛岀Щ鍏ョ簿閫夌殑琛ㄧず绗﹀悎 锛屾彁鍓嶈娓呮姣旇緝濂?锛岄伩鍏嶅埌鏃跺€欏厬鎹㈠按灏?锛屾瘯绔熸墦鍗$洰鐨勪富瑕佹槸鍏绘垚涓€涓ソ涔犳儻 锛屽悓鏃朵篃甯屾湜鍚勪綅鑳借鐪熻鏂囩珷 锛屾墍浠ヤ富棰橀兘鏄枃绔犵浉鍏崇殑鍛?锛?/span>


鎺ㄨ崘闃呰锛?/span>




杩欎箞纭殑骞茶揣锛屼笉缁欎釜濂界湅锛燂紒

娆㈣繋鍏虫敞杩欎釜楠氬寘绋嬪簭鐚筐煈?/strong>

以上是关于的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数

VSCode自定义代码片段8——声明函数