這節課我們來講尺取法思想。
上課!首先,
所謂尺取法,是列舉區間的時候的一種優化思想。我們顧名思義地理解,就像是在乙個數軸上,用尺慢慢地取。
用比較學術的話來講,就是取一對陣列下標(即區間左右端點),根據題目要求和實際情況不斷地推進左右區間得出答案。
你可能會說,這不就是暴力列舉麼?
是的,不過它在處理區間的時候的效率要比一般的暴力列舉高很多很多。
然後,尺取法通常適用於選取區間有一定規律,或者說所選取的區間有一定的變化趨勢的情況,比如單調性的區間就是經常用到尺取法的經典區間。
第三個問題,
1、 什麼情況下能使用尺取法?
2、何時推進區間的端點?
3、如何推進區間的端點?
4、何時結束區間的列舉?
解決這些問題,相信你對尺取法就有了一定的理解,但是這並不是一種演算法,而是一種思想。所以請同學們用一些例題來加深理解。
下課!祝同學們ak ioi!!
尺取法 雙指標小結
先排序,在有序陣列中移動兩個指標 篩選滿足題目條件的元素 2018年藍橋杯第六題 遞增三元組以b陣列為基準,在a陣列中找比b小的,在c陣列中找比b大的hihocoder 1514題,偶像的條件 類似上一題 小於等於a i 的數里最大的 和 大於等於a i 的數里最小的 二選一。2018年藍橋杯第八題...
雙指標演算法(尺取法)
指向兩個序列 指向乙個序列 維護一段區間,就像快排一樣 一般的樣子 for i 0,j 0 i n i 最核心的性質 能優化到 o n 可能是2n,3n等等 運用了某些單調的性質 模板就是為了節省思考的時間 輸出字串 for int i 0 i strlen str i 樸素做法 for int i...
關於尺取(雙指標)法的理解
以下關於該方法的理解是出自我在寫相關程式的時候遇到的超出所設定時間範圍的問題的乙個解法。該解法在針對某些特定問題的時候可以減少時間成本,即降低時間複雜度。在某些問題中例如 給定乙個列表a a,b,c,d,e,f 求出乙個目標值 t,該目標值 t 需要從給定的列表中找出三個數相加得到。三個數只能從列表...