首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数组——977. 有序数组平方

1 题目描述 给你一个按 非递减顺序 排序整数数组 nums,返回 每个数字平方 组成数组,要求也按 非递减顺序 排序。...2 题目示例 示例 1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100] 排序后,数组变为 [0,1,9,16,100...i] <= 104 nums 已按 非递减顺序 排序 4 思路 数组其实是有序, 只不过负数平方之后可能成为最大数了。...那么数组平方最大值就在数组两端,不是最左边就是最右边,不可能是中间。 此时可以考虑双指针法了,i指向起始位置,j指向终止位置。...定义一个新数组result,和A数组一样大小,让k指向result数组终止位置。

33830
您找到你想要的搜索结果了吗?
是的
没有找到

有序数组平方+相关练习

有序数组平方 - 力扣(LeetCode) 这题小伙伴们肯定很快想到 把每个数平方之后再排序吧! 但排序你是否掌握了呢?哈哈哈,不用担心,我们可以直接引用排序函数。...但小伙伴们,对于排序基本算法自己也一定要掌握哦!(偷偷告诉小伙伴们,我其实也没掌握呜呜呜,需要反复多多练习。)...nums[i]; } sort(nums.begin(),nums.end()); return nums; } }; sort();就是我们说排序函数...但是小伙伴们别忘了加必须头文件哦! #include using namespace std; 当然还有一种情况,我们可以用上双指针法。...就是数组平方最大值就在数组两端,不可能是中间。小伙伴们,当你们看到有负数升序排列时,就可以立马想到用这个方法哦!

22820

有序数组平方

题目描述 解题思路 代码 复杂度分析 题目描述 题目链接 给你一个按 非递减顺序 排序整数数组 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 <= 10^4 -10^4 <= nums[i] <= 10^4...nums 已按 非递减顺序 排序 进阶: 请你设计时间复杂度为 O(n) 算法解决本问题 解题思路 可以使用暴力求解,即最后需要对平方数组 res 进行排序,时间复杂度为 O(nlogn)。...题目的进阶要求是时间复杂度为 O(n),其实也比较简单,先遍历出数组绝对值最小,依次向两边遍历即可(题目已经说明输入数组是非递减顺序)。

19420

有序数组平方,还有序么?

977.有序数组平方 https://leetcode-cn.com/problems/squares-of-a-sorted-array/ 给你一个按 非递减顺序 排序整数数组 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] 思路 暴力排序 最直观相反,莫过于:每个数平方之后,排个序,美滋滋,代码如下: class Solution...双指针法 数组其实是有序, 只不过负数平方之后可能成为最大数了。 那么数组平方最大值就在数组两端,不是最左边就是最右边,不可能是中间。 此时可以考虑双指针法了,i指向起始位置,j指向终止位置。...定义一个新数组result,和A数组一样大小,让k指向result数组终止位置。

42740

有序数组平方 双指针法

给你一个按 非递减顺序 排序整数数组 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] 双指针法 数组其实是有序, 只不过负数平方之后可能成为最大数了。...那么数组平方最大值就在数组两端,不是最左边就是最右边,不可能是中间。 此时可以考虑双指针法了,i指向起始位置,j指向终止位置。...// 遍历一次,首指针平方与尾指针平方比较 // 选择大,然后放在结果指针,然后结果指针-1 for (int i = 0, j = nums.size() - 1; i <= j

10120

java中数组输出_java数组输出方法

1.数组输出三种方式 一维数组: 定义一个数组 int[] array = {1,2,3,4,5}; (1)传统for循环方式 1 for(int i=0;i (2)for each循环...1 for(inta:array)2 System.out.println(a); (3)利用Array类中toString方法 调用Array.toString(a),返回一个包含数组元素字符串...,这些元素被放置在括号内,并用逗号分开 1 int[] array = {1,2,3,4,5};2 System.out.println(Arrays.toString(array)); 输出:[1,...2, 3, 4, 5] 说明:System.out.println(array);这样是不行,这样打印是的是数组首地址。...,只有一维数组,多维数组被解读为”数组数组”,例如二维数组magicSquare是包含{magicSquare[0],magicSquare[1],magicSquare[2]}三个元素一维数组,magicSqure

2.5K20

关于js数组循环输出几个方法以及关于下标不固定循环输出控制方法

今天上班遇到个下标不固定jsjson对象,如图 ?...本人想实现是忽略第一个元素,循环后面的数据, 一开始使用是for循环  var i; for(i=1;i<data.length;i++){ } 没写完就发现这样不行,因为本身下标是2,data...[i],当i=1时是没有值 后来试了下$.each $.each(data,function(i,n){   if(i>1) {     console.log(i + ',' + n);   } }...); 这样也发现i还是下标的值,输出结果还是3个都输出,不能实现忽略第一个; 到后来大神跟我说了个for in  <script type="text/javascript"...=1){     //遍历输出   }   i++; } 这样子的话,当第一次执行时,i为1,这样就不会输出,而第一次过后,i会+1,i=2,这样的话就开始输出了,脑子真笨!

5.6K30
领券