天天看點

有序數組的平方 (雙指針)

有序數組的平方 (雙指針)

 可以暴力寫,就是說将所有的元素平方後再排序。

雙指針:就是說将nums的數組的 i下标 從開始的位置開始周遊,然後再從 j下标 從結束的位置開始周遊,向中間周遊,

代碼随想錄

有序數組的平方 (雙指針)
class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        int mysize=nums.size()-1;
        vector<int>ns(mysize+1,0);
        int io=nums.size()-1;
        int i=0;
        int j=mysize;
        while(1){
            if(i>j || i>mysize || j<0 ){
                break;
            }
            if((nums[j]*nums[j])>(nums[i]*nums[i])){
                ns[io]=nums[j]*nums[j];
                io--;
                j--;
            }else{
                ns[io]=nums[i]*nums[i];
                io--;
                i++;
            }
        }
        return ns;
    }
};