貪⼼演算法是⼀種求近似解的思想。當能滿⾜⼤部分最優解時就認為符合邏輯要求。
還⽤找零 這個案例為例, 考慮使⽤貪⼼演算法解題: ⽐如當找零數為 36 時, 從硬幣數的最⼤值 20 開始填充,
填充不下後再⽤ 10 來填充, 以此類推, 找到最優解。
場景: 假如有 1, 5, 10, 20,50,100 的⼈⺠幣
36 // 找零數
[20, 10, 5, 1] // 需 20、10、5、1
class change
makechange(amount)
}return arr}}
const change = new change([1, 5, 10, 20,50,100])
console.log(change.makechange(36))
console.log(change.makechange(136))
console.log('-'.repeat(100))
const change1 = new change([1, 3, 4])
console.log(change1.makechange(6)) // 其實33最好
貪⼼演算法相對簡單,就是先懟最⼤的,⼤部分情況都ok,但是有些情況不是最優解,所以⼈不要太貪
⼼哦console.log('-'.repeat(100))
const change1 = new change([1, 3, 4])
console.log(change1.makechange(6)) // 其實33最好
對漢諾塔遞迴演算法的研究
漢諾塔問題的遞迴解法是乙個非常經典的演算法。一 遞迴描述 1 當disc 1時 將盤子從x柱直接移到z柱 完成。2 當disc 2時 首先將編號為1的盤子從x柱移到y柱 其次將編號為2的盤子從x柱移到z柱 最後將編號為1的盤子從y柱移到z柱 完成。3 由2推廣可知,當disc n時 首先將n 1個盤...
對python亂序字串檢查演算法研究
顯示不同量級的演算法的乙個很好的例子是字串的亂序檢查。亂序字串是指乙個字串只是另乙個字串的重新排列。例如,heart 和 earth 就是亂序字串。python 和 typhon 也是。為了簡單起見,我們假設所討論的兩個字串具有相等的長度,並且他們由 26 個小寫字母集合組成。我們的目標是寫乙個布林...
10 16 對頂堆演算法研究(POJ 3784)
考慮維護兩個堆 乙個堆是大根堆,儲存1 x的元素 乙個堆是小根堆,儲存x 1 n的元素 對於乙個加入的元素y,考慮將其加入大根堆or小根堆?如果y mid,那麼將其加入小根堆 上面的堆 如果y include include include using namespace std int t,pos...