有序陣列求平方有序對應陣列

2021-10-11 05:21:32 字數 703 閱讀 8798

977給定乙個按非遞減順序排序的整數陣列 a,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。

示例 1:

輸入:[-4,-1,0,3,10]

輸出:[0,1,9,16,100]

示例 2:

輸入:[-7,-3,2,3,11]

輸出:[4,9,9,49,121]

有序,陣列,平方,還有序

1、直接平方之後重新排一下,sort函式

2、考慮到原始是公升序的,可以分全負數,全正數,找0,然後平方翻轉,使用歸併

3、直接使用原陣列的兩端開始比較(左邊取負和右邊進行比較),大的直接從ans的末尾開始填充,

,歸併不太會

2、那個for語句不對的地方是應該使用auto & num:nums就好了

class

solution

*/for

(int i=

0;i++i)

sort

(nums.

begin()

,nums.

end())

;return nums;}}

;class

solution

else

i--;}

//sort(nums.begin(),nums.end());

return ans;}}

;

有序陣列的平方

給你乙個按 非遞減順序 排序的整數陣列 nums,返回 每個數字的平方 組成的新陣列,要求也按 非遞減順序 排序。示例 1 輸入 nums 4,1,0,3,10 輸出 0,1,9,16,100 解釋 平方後,陣列變為 16,1,0,9,100 排序後,陣列變為 0,1,9,16,100 示例 2 輸...

977 有序陣列的平方

利用 陣列 nums 已經按照公升序排序 這個條件。顯然,如果陣列 nums 中的所有數都是非負數,那麼將每個數平方後,陣列仍然保持公升序 如果陣列 nums 中的所有數都是負數,那麼將每個數平方後,陣列會保持降序。因此就可以使用歸併的方法進行排序。使用兩個指標分別指向位置 0 和 n 1,每次比較...

977 有序陣列的平方

題意理解 給定遞增陣列,把陣列元素平方後遞增輸出。思路 可能含有負數,但是存在乙個負數和正數的分界線neg。利用雙指標,從neg和neg 1向兩邊遍歷,把小的push進ans中,直至到達一邊的邊界,這時把另一邊剩下的順序push進ans中就可以了。麻煩的地方在於要做邊界 檢查。另一種反向思路 雙指標...