力扣 LeetCode 977. 有序数组的平方(Day1:数组)

解题思路:

方法一:先平方再快排

方法二:双指针

因为可能有负数,所以对于一个数组 [ -5 , -3 , 0 , 2 , 4 ] 可以从两边向内靠拢,最大值一定出现在两端

设置指针 i 和指针 j 分别从左右两边靠拢

因为要从小到大排序,所以用 k 倒着赋值即可

java 复制代码
class Solution {
    public int[] sortedSquares(int[] nums) {
        int i = 0;
        int j = nums.length - 1;
        int k = nums.length - 1;
        int[] res = new int[nums.length];

        while (i <= j) {
            if (nums[i] * nums[i] < nums[j] * nums[j]) {
                res[k] = nums[j] * nums[j];
                k--;
                j--;
            } else {
                res[k] = nums[i] * nums[i];
                k--;
                i++;
            }
        }

        return res;
    }
}
相关推荐
瓦力wow6 分钟前
c语言 写一个五子棋
c语言·c++·算法
X-future4266 分钟前
院校机试刷题第六天:1134矩阵翻转、1052学生成绩管理、1409对称矩阵
线性代数·算法·矩阵
丁一郎学编程21 分钟前
优先级队列(堆)
java·数据结构
Codeking__27 分钟前
前缀和——中心数组下标
数据结构·算法
爱喝热水的呀哈喽39 分钟前
非线性1无修
算法
GG不是gg1 小时前
数据结构:二叉树一文详解
数据结构·青少年编程
花火QWQ1 小时前
图论模板(部分)
c语言·数据结构·c++·算法·图论
Pacify_The_North1 小时前
【进程控制二】进程替换和bash解释器
linux·c语言·开发语言·算法·ubuntu·centos·bash
轮到我狗叫了2 小时前
力扣310.最小高度树(拓扑排序,无向图),力扣.加油站力扣.矩阵置零力扣.二叉树中的最大路径和
算法·leetcode·职场和发展
埃菲尔铁塔_CV算法2 小时前
深度学习驱动下的目标检测技术:原理、算法与应用创新(二)
深度学习·算法·目标检测