【双指针问题】977. 有序数组的平方
创始人
2024-05-26 02:48:26
0

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。

🌈个人主页:主页链接

🌈算法专栏:专栏链接

     我会一直往里填充内容哒!

🌈LeetCode专栏:专栏链接 

    目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出

🌈代码仓库:Gitee链接

🌈点击关注=收获更多优质内容🌈

记录下今天的Leetcode,虽然是一道简单题,但用了两种解法,都挺快的。

目录

题目:

白话讲解:

题解:

解法1:

代码实现:

解法2:

代码实现:

完结撒花:


题目:

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

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

白话讲解:

就是有一个升序的数组,返回每个元素平方组成的新数组,该数组也满足升序的概念.

题解:

分析题目强调的升序数组,我们可以得出每个元素平方后有三种情况

第一种:数组中全为负数,那么在平方后他呈递减的趋势

第二种:数组中全为正数,那么在平方后他呈递增趋势

第三种:数组中既有正数也有负数,那么在平方后他呈二次函数x^2的形式 

解法1:

可以看出,我们需要做的就是找到绝对值最小的元素 然后往两边扩散开(双指针),例如第一种我们找到绝对值最小的元素0,然后往左右两边去扩散开,因为右边没有元素,所以我们将左边元素平方后填入.

再比如第三种:

找到绝对值最小的元素0,之后对两边进行比较

若左边的平方大于右边的平方,则将右边的平方放入答案数组 之后右边的指针向后移动一位.再进行比较,如此循环

当左边到达边界或右边到达边界时退出.再进行一个判断若左边还未到达边界则将左边的元素全部填入答案数组中,反之.(相当于归并排序排序的过程)

代码实现:

class Solution {
public:vector sortedSquares(vector& nums) {int n=nums.size(),flag=0;for(int i=0;ians;while(i>=0&&j=0){ans.push_back(nums[i]*nums[i]);i--;}while(j

 

解法2:

这个解法将三种情况用一种模式来搞定,我们可以发现,

若有 两个指针指向这个数组的首位端,那么平方后一定有,大的一定就是填入数组中的那个,所以我们直接将大的那个数填入答案数组中,即可

代码实现:

class Solution {
public:vector sortedSquares(vector& nums) {int n=nums.size();vectorans(n);int i=0,j=n-1,cur=n-1;while(i<=j){if(nums[i]*nums[i]<=nums[j]*nums[j]){ans[cur]=nums[j]*nums[j];j--;}else {ans[cur]=nums[i]*nums[i];i++;}cur--;}return ans;}
};

 

完结撒花:

🌈本篇博客的内容【双指针问题 977. 有序数组的平方】已经结束。

        最近在复习要命的线代和计组,只能保证每天一题的频率了(惨兮兮 

🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。

🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。

🌈诸君,山顶见!

相关内容

热门资讯

摸摸你的腰mp3 摸摸你的腰mp3摸摸你的腰mp3... 摸摸你的腰mp3 展开 好多水我摸摸你的头好温柔,我...
最近书荒啊,谁有没有好看的言情... 最近书荒啊,谁有没有好看的言情小说介绍一些啊!不配【有三部】,赶夫上轿【轻松】,南风过境【宠文】,花...
金饰克价再次涨至1000元!黄... 本文来自微信公众号“大象新闻”6月30日,现货黄金盘中一度跌至一个月内新低,随后开始大幅反弹,收报3...
西安警方回应“中华田园犬禁养”... 6月30日,网传陕西省西安市公安局限制养犬管理办公室发布的“重点限养区禁止饲养烈性犬和大型犬”图片引...
小学生常常以教师的行为为榜样,... 小学生常常以教师的行为为榜样,教师也处处表现出对表现好的学生的喜爱和认可,学生从中获得派生地位。这种...
香港维持对日本水产进口管制 作者 | 《财经》特派香港记者 焦建 编辑 | 苏琦  日本水产及日式料理多年来受港人追捧,日本水产...
成都先导终止收购海纳医药65%... 6月30日,成都先导药物开发股份有限公司(以下简称“成都先导”)宣布,因未能就交易事项的核心条款达成...
11岁女孩身高137cm,警惕...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! 转自:医学界*仅供医...
《勇气》阅读题理解 《勇气》阅读题理解 19世纪,在英国的名门公立学校—哈罗学校常常会出现以强凌弱、以大欺小的事情。...
建设银行再创历史新高!牵手“山...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会!   中国基金报记者 ...