当前位置:网站首页>LeetCode每日两题01:有序数组的平方 (均1200道)方法:双指针
LeetCode每日两题01:有序数组的平方 (均1200道)方法:双指针
2022-08-09 01:13:00 【那人独钓寒江雪.】

解题思路:最简单的方法就是将数组 nums 中的数平方后直接排序然后放在另一个新建的数组中。
class Solution {
public int[] sortedSquares(int[] nums) {
int[] ans=new int[nums.length];
for (int i=0;i<nums.length;i++){
ans[i]=nums[i]*nums[i];
}
Arrays.sort(ans);
return ans;
}
}

class Solution {
public int[] sortedSquares(int[] nums) {
int n = nums.length;
int negative = -1;
for (int i = 0; i < n; ++i) {
if (nums[i] < 0) {
negative = i;
} else {
break;
}
}
int[] ans = new int[n];
int index = 0, i = negative, j = negative + 1;
while (i >= 0 || j < n) {
if (i < 0) {
ans[index] = nums[j] * nums[j];
++j;
} else if (j == n) {
ans[index] = nums[i] * nums[i];
--i;
} else if (nums[i] * nums[i] < nums[j] * nums[j]) {
ans[index] = nums[i] * nums[i];
--i;
} else {
ans[index] = nums[j] * nums[j];
++j;
}
++index;
}
return ans;
}
}
复杂度分析
时间复杂度:O(n)O(n),其中 nn 是数组 \textit{
nums}nums 的长度。
空间复杂度:O(1)O(1)。除了存储答案的数组以外,我们只需要维护常量空间。
边栏推荐
猜你喜欢

LeetCode精选200道--双指针篇

seaborn 笔记: 绘制分类数据

如何仿造一个websocket请求?

在特征通道提升网络性能 --SENet网络详解

Transformer前言:self-attention与Multi-Headed Attention的详细理解

全新Swagger3.0教程,OAS3快速配置指南,实现API接口文档自动化!

浅谈自定义应用层协议与UDP的报文结构和注意事项

轻量化网络ChannelNet--channel-wize Conv在channel维度卷积

JSON基础,传递JSON数据,介绍jackson、gson、fastjson、json-lib四种主流框架!

椭圆曲线复习
随机推荐
Loadrunner结合Fiddler实现脚本的录制
5-3 Seaborn 分布绘图
【科研-学习-pytorch】2-线性回归
4-7 Matplotlib库 箱线图
低代码接口开发平台——YesApi(API+数据表单)
Image denoising based on edge enhancement Diffusion 】 (cEED) and Coherence Enhancing coursing together (cCED) filter to realize image denoising matlab code
【C语言刷题】链表中快慢指针的应用
理财产品募集期和开放期有什么区别?
ONNX是什么?怎么用?[简明解读版]
4-10 Matplotlib 多图布局
Sencha Touch延迟加载模块中的小类提高程序进入每个模块时性能
js文件的处理
易周金融分析 | 互联网系小贷平台密集增资;上半年银行理财子公司综合评价指数发布
生成一系列随机字符串的文件
4-11 Matplotlib 配置
RS&FSW测试脚本
Bugs encountered in remote control projects
关于cordova的InAppBrowser插件的几点问题
CondConv--动态卷积思想
【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码