01数组:977、有序数组的平方

本文介绍了在有序数组中找到平方后最大值的两种方法:暴力法通过for循环平方并排序,而双指针法利用两个指针分别指向数组两端,根据当前元素的平方大小动态决定插入位置,以高效找到平方后的新数组。
摘要由CSDN通过智能技术生成

977、有序数组的平方


重点:平方后最大数只能出现在两边

    1. 暴力法:for循环平方后,进行排序
    1. 双指针:双指针指向两边,哪个大就平方后放入新数组(倒着放入)

方法一:暴力法

方法二:双指针法

        public int[] sortedSquares(int[] nums) {
            int left = 0, right = nums.length - 1;
            int[] res = new int[nums.length];
            int index = nums.length - 1;
            while (left <= right) {  //需要判断最中间的数字
                if (nums[left] * nums[left] > nums[right] * nums[right]) {  //左右两边那边大
                    res[index--] = nums[left] * nums[left];  //大的放入结果
                    left++;//改变索引位置
                } else {
                    res[index--] = nums[right] * nums[right];
                    right--;
                }
            }
            return res;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值