376.擺動序列(mediun)
計算出相鄰元素之間的差值,若相鄰非零差值的乘積小于零那么證明當(dāng)前元素加入序列中能夠保持當(dāng)前的擺動序列規(guī)則。這樣通過一次掃描即可得到總共的序列個數(shù)讹挎。
406.根據(jù)身高重建隊列(medium)
通過貪心算法來解決問題揽祥,首先按照身高進(jìn)行排序泄私,考慮先放身高低的和身高較高的人欺缘。若從身高最高的人開始排序,那么相對位置就已經(jīng)確定了箭阶,只需將剩下的人按照元組中的第二個元素進(jìn)行插入即可虚茶。
765.情侶牽手??(hard)
假設(shè)在第i和i+1位置上有[a,b]兩個人,那么如果a為奇數(shù)b=a-1 || b為偶數(shù)a = b+1仇参,那么ab為一對情侶嘹叫,不用移動。如果b不是a的情侶冈敛,那么考慮最少的移動次數(shù)待笑,我們交換b和a情侶c的位置即將i,i+1兩個位置的情侶確定。將i位置的情侶定住抓谴,去尋找ta的情侶暮蹂,即為最少次數(shù)的移動方法寞缝。
1353.最多可以參加的會議數(shù)目(medium)
考慮先參加結(jié)束最早的會議。
重疊問題
435.無重疊區(qū)間(medium)
452.用最少數(shù)量的箭引爆氣球(medium)
這兩題的思路一致仰泻,即按照區(qū)間的右側(cè)進(jìn)行判斷荆陆,先按照右端點的大小排序,若下一個區(qū)間的左端點比當(dāng)前右端點小集侯,那么當(dāng)前區(qū)間存在重疊被啼,然后右端點不變繼續(xù)向下遍歷,若存在一個左端點大于當(dāng)前右端點棠枉,則更新右端點浓体。
覆蓋問題
45.跳躍問題II(hard)
1024.視頻拼接(medium)
1326.灌溉花園的最少水龍頭數(shù)目(hard)
這三道問題其實具有相同的思路,以1326舉例
從終點開始遍歷每個點辈讶,從右向左更新每個點所能到達(dá)的最遠(yuǎn)位置命浴,再次遍歷這些點,選取最遠(yuǎn)的位置作為下次跳躍的點贱除,如果遍歷到由上次跳躍所到達(dá)的最遠(yuǎn)的點生闲,那么判斷該點所能到達(dá)的位置,如果在原地不動則不能覆蓋月幌,如果得到了更新那么就ans++碍讯,更新出發(fā)點重復(fù)上述過程。
招行筆試:木棍問題
參考:https://blog.csdn.net/martinue/article/details/43737891