力扣977.有序数组的平方

embedded/2024/10/8 23:32:38/

题目链接:977. 有序数组的平方 - 力扣(LeetCode)

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

示例 1:

输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]

示例 2:

输入:nums = [-7,-3,2,3,11]
输出:[4,9,9,49,121]

提示:

  • 1 <= nums.length <= 104

  • -104 <= nums[i] <= 104

  • nums 已按 非递减顺序 排序

暴力排序:

java:

class Solution {public int[] sortedSquares(int[] nums) {for(int i=0;i<nums.length;i++){nums[i]=nums[i]*=nums[i];}Arrays.sort(nums);return nums;}
}

C++: 

class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {for(int i=0;i<nums.size();i++){nums[i]=nums[i]*=nums[i];}sort(nums.begin(),nums.end());return nums;}
};

双指针法:

由于所给的nums数组是排好序的,所以最大值会出现在数组两端,使用双指针从两端向中间遍历,从尾到头(数值从大到小)更新数组

class Solution {public int[] sortedSquares(int[] nums) {//双指针法int left = 0;int right = nums.length - 1;int k = nums.length - 1;int[] ans = new int[nums.length];while (left <= right) {if (nums[left] * nums[left] >= nums[right] * nums[right]) {ans[k] = nums[left] * nums[left];k--;left++;} else {ans[k] = nums[right] * nums[right];k--;right--;}}return ans;}
}

http://www.ppmy.cn/embedded/124774.html

相关文章

Python : 类变量、静态方法、类方法

文章目录 前言1 类变量(Java静态变量)2 Python中的静态方法(使用 @staticmethod 装饰器声明)3 类方法(使用 @classmethod 装饰器声明)4 静态方法和类方法的区别前言 学完Java过后,对python中有了一些疑惑。Java中有static修饰的静态变量和静态方法这两个很用用的知识点…

网络编程(15)——服务器如何主动退出

十五、day15 服务器主动退出一直是服务器设计必须考虑的一个方向&#xff0c;旨在能通过捕获信号使服务器安全退出。我们可以通过asio提供的信号机制绑定回调函数即可实现优雅退出。 之前服务器的主函数如下 #include "CSession.h" #include "CServer.h"…

代码随想录 103. 水流问题

103. 水流问题 #include<bits/stdc.h> using namespace std;void dfs(vector<vector<int>>& mp, vector<vector<int>>& visit, int y, int x){if (visit[y][x] 1) return;visit[y][x] 1;if (y > 0){if (mp[y][x] < mp[y - 1][x…

10.7学习

1.安全认证 ●Session 认证中最常用的一种方式&#xff0c;也是最简单的。存在多节点session丢失的情况&#xff0c;可通过nginx粘性Cookie和Redis集中式Session存储解决 ●HTTP Basic Authentication 服务端针对请求头中base64加密的Authorization 和用户名和密码进行校验。…

redis数据类型介绍

1. 字符串&#xff08;String&#xff09; 字符串是 Redis 中最基本的数据类型&#xff0c;它可以存储任何形式的字符串&#xff0c;包括文本、数字等。字符串类型的操作非常丰富&#xff0c;比如 SET、GET、INCR&#xff08;自增&#xff09;、DECR&#xff08;自减&#xff0…

sqli-labs靶场第五关less-5

sqli-labs less-5 本次测试由虚拟机搭建靶场&#xff0c;主机浏览器中基于hackbar插件进行测试 1、确定注入点及注入类型 输入&#xff1a; http://192.168.128.3/sq/Less-5/?id1 http://192.168.128.3/sq/Less-5/?id2 发现页面回显都一致&#xff0c; 输入 http://192.168…

检查jar冲突,查找存在相同class的jar

写在前面 本文看下如何查找jar冲突&#xff0c;即查找哪些jar包中存在相同的class。如果是存在相同jar的不同版本&#xff0c;基本一眼就能看出来&#xff0c;然后结合maven的依赖关系将其剔除掉即可&#xff0c;但是当你遇到了有人手动拷贝某些class到jar包中导致冲突的情况时…

第十一章 缓存之更新/穿透/雪崩/击穿

目录 一、什么是缓存 二、缓存更新策略 2.1. 缓存主动更新策略 2.1.1. Cache Aside模式&#xff08;主流&#xff09;‌ 2.1.2. Read/Write Through模式‌ 2.1‌.3. Write Behind模式‌ 2.1.4. 总结 三、缓存穿透 四、缓存雪崩 五、缓存击穿 5.1. 互斥锁实现 5.1.1…