《LeetCode力扣练习》代码随想录——数组(有序数组的平方---Java)

《LeetCode力扣练习》代码随想录——数组(有序数组的平方—Java)



刷题思路来源于 代码随想录

977. 有序数组的平方
  • 双指针
    class Solution {
        public int[] sortedSquares(int[] nums) {
    
            int[] result=new int[nums.length];
    
            if(nums.length==1){
                result[0]=nums[0]*nums[0];
                return result;
            }
    
            int k=nums.length-1;
    
            for(int slow=0,fast=nums.length-1;slow<=fast;){
    
                int left=nums[slow]*nums[slow];
                int right=nums[fast]*nums[fast];
    
                if(left<right){
                    result[k--]=right;
                    fast--;
                }else{
                    result[k--]=left;
                    slow++;
                }
    
            }
    
            return result;
    
        }
    }
    

你可能感兴趣的:(LeetCode,leetcode,java,算法)