演算法 陣列類 總結

2021-09-10 04:39:30 字數 586 閱讀 1409

寫演算法也寫了十來天了,都是陣列類的。今天完成了乙個課題,覺得需要總結下。今天突然很遺憾的發現,自己之前寫過的演算法,現在自己回想起來,也不知道怎麼解決。

溫故而知新。決定,今天就不寫演算法題了,決定思考總結下之前的演算法題。

這個人的思路真的是很厲害。我嘗試問自己,這個人是怎麼樣想的?我去按照他的思路去思考問題。

常規思路:遇到非零的,不變。遇到0,把他移動到最後。這個移動到最後,寫法又是乙個迴圈。

仔細想想,這種思路就不可取。除非萬不得已,因為實現起來,太複雜了。而且,也不會最優秀的演算法。

網上最快的思路,怎麼說呢,大致思路是,兩個指標,乙個指向當前遍歷的,乙個是指向當前是0的位置,等待交換。交換完之後,j++; 指向0的位置的變數j++. 為什麼j++ 就一定還是0 呢? 因為從j 到 i 這個區間,都是0 。如果當前不是0的話,那麼i 和 j 都 ++;

說實話,那個網上寫法最簡答, 而且演算法效率最高的人的思路,我現在還是不明白,他是怎麼想出來的。

雖然有些情況,自己還是不是很確定自己完全掌握了別人的思維。但是,90%的題,我都了解了。對自己的面試肯定有幫助。

學習總是有用的。

加油。

簡單演算法 陣列

1.給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。param nums return var removeduplicates function nums prices return var maxprofit function prices pa...

演算法 陣列和視窗 陣列

給定乙個整型陣列arr和乙個大小為w的視窗,視窗從陣列最左邊滑動到最右邊,每次向右滑動乙個位置,求出每一次滑動時視窗內最大元素的和。輸入第一行為用例個數,每個測試用例輸入的第一行為陣列,每乙個元素使用空格隔開 第二行為視窗大小。輸出每個測試用例結果。14 3 5 4 3 3 6 7 3 陣列與視窗 ...

演算法 陣列連乘問題

乙個程度為n的陣列,現在要令 a 0 a 1 a 2 a n 1 a 1 a 0 a 2 a n 1 a 2 a 0 a 1 a n 1 a n 1 a 0 a 2 a n 2 條件是不能用除法,時間複雜度必須是線性。觀察一下題目,每乙個元素 i 都被更新成了a 0 到a n 1 除去 i 下標元素...