利用「陣列 nums 已經按照公升序排序」這個條件。顯然,如果陣列 nums 中的所有數都是非負數,那麼將每個數平方後,陣列仍然保持公升序;如果陣列 nums 中的所有數都是負數,那麼將每個數平方後,陣列會保持降序。因此就可以使用歸併的方法進行排序。使用兩個指標分別指向位置 0 和 n−1,每次比較兩個指標對應的數,選擇較大的那個逆序放入答案並移動指標。這種方法無需處理某一指標移動至邊界的情況。
class
solution
else
pos--;}
return res;}}
;
時間複雜度:o(n)
空間複雜度:o(1)
977 有序陣列的平方
題意理解 給定遞增陣列,把陣列元素平方後遞增輸出。思路 可能含有負數,但是存在乙個負數和正數的分界線neg。利用雙指標,從neg和neg 1向兩邊遍歷,把小的push進ans中,直至到達一邊的邊界,這時把另一邊剩下的順序push進ans中就可以了。麻煩的地方在於要做邊界 檢查。另一種反向思路 雙指標...
977 有序陣列的平方
給你乙個按 非遞減順序 排序的整數陣列 nums,返回 每個數字的平方 組成的新陣列,要求也按 非遞減順序 排序。示例 1 輸入 nums 4,1,0,3,10 輸出 0,1,9,16,100 解釋 平方後,陣列變為 16,1,0,9,100 排序後,陣列變為 0,1,9,16,100 示例 2 輸...
C Leetcode977 有序陣列的平方
前言 連續做題訓練到現在,歷經20天左右,做了六十多道題,從陣列 鍊錶 二叉樹 雜湊表等各專項訓練,收穫很大。過程中,煎熬 激動 開心 痛苦。迴圈著經歷!現在最欣慰的是 拿到這些簡單的題目,可以瞬間做出來。我知道,現在差距還很大,要能做出來,要多種方法做出來,要快速做出來。但是 要鼓勵下自己,go ...