2)思路
3)補充知識
4)**與測試
要求:給你一根長度為n的繩子,請把繩子剪成m段(m,n都是整數,n > 1 並且m > 1),每段繩子的長度記為k[0], k[1], …k[m]。請問k[0] x k[1] x … x k[m]可能的最大乘積是多少?
例如,當繩子的長度是8時,我們把它剪成長度分別為2、3、3的三段,此時得到的最大乘積是18。
總體來分兩種
動態規劃和貪婪演算法的區別與聯絡:
動態規劃具有兩個性質:
1)重疊子問題
2)最優子結構
貪心演算法具有兩個性質:
1)貪心選擇性質
2)最優子結構
最優子結構性質是指問題的最優解包含其子問題的最優解時,就稱該問題具有最優子結構性質,重疊子問題指的是子問題可能被多次用到,多次計算,動態規劃就是為了消除其重疊子問題而設計的,可以採用自下而上的解決思路。其實貪心演算法是一種特殊的動態規劃,由於其具有貪心選擇性質,保證了子問題只會被計算一次,不會被多次計算,因此貪心演算法其實是最簡單的動態規劃。
(1)**
#pragma once
#include
using
namespace std;
//動態規劃
intmaxproductaftercutting
(int length)
} max = product[length]
;delete
product;
return max;
}//貪婪演算法
intmaxproductaftercutting_solution2
(int length)
//測試**
//#pragma once
//#include
//#include
//#include "offer_14.h"
////int main()
//
劍指Offer精選程式設計面試題4 二維陣列中的查詢
2 思路 3 小結 4 要求 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。樣例 注意題目說的陣列,無論是列還是行,都是遞增的,所有這個矩陣,是個有序矩陣,則可以根據這個矩陣的特點...
劍指Offer精選程式設計面試題15 二進位制中1的個數
2 思路 3 與測試 要求 輸入乙個整數,輸出該數二進位制表示中1的個數。如輸入9,則輸出2。總體來分三種 思路一弊端 此操作輸入負數的時候容易引發死迴圈,因為負數移位的時候最高位會設為1,容易陷入死迴圈。思路二弊端 此操作的迴圈次數為整數二進位制的位數,為常規解法。思路三優勢 此操作的迴圈次數為整...
劍指offer 面試題(1)
這兩天通過做作業接觸了 劍指offer 這本書 覺得裡面的面試題真是異常經典,當你看到那一道一道面試題時,對自我的做題筆試能力肯定會大有脾益 平常可以多做練習,養成乙個習慣 好了,廢話不多說了,直接上題吧 我已經感到 了 第一道 劍指offer 面試題14 調整陣列使奇數全部都位於偶數前面。題目 輸...