重念一次早該補起來的「資料結構與演算法」。這篇筆記延續 Sliding Window 的練習,來解 Unique Letter SubString 和 Largest Product。
課程相關資訊
[連結]:https://hiskio.com/courses/572/lectures/29790
本篇範圍:Chapter 4
請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。
內容
Unique Letter SubString
解法
一樣使用雙指針,都由左側開始。
當右側一個個加入記數 (counter) ,並計算雙指針的差值。
每當記數重複時,將左側的指針往右移,並將記數內的值 – 1。雖說 start 和 end 此時所指的內容字是一樣的,但需要寫 start 以便閱讀
若最後結果仍是 -Infinity,那就表示沒有 unique 的 subString
Largest Product
The four adjacent digits in the 1000-digit number that have the greatest product are 9*9*8*9 = 5832.
Find the n adjacent digits in the 1000-digit number that have the greatest product. What is the value of this product?
解法
一樣是雙指針,一根為 start,另一個為 size 的大小當做起始值。
這是一個固定式的窗格題目,每次就一個個向右滑動把積給算出來