题目链接:977.有序数组的平方 - 力扣(LeetCode) 方法: 题外话: 对于数组,链表,字符串这些数据结构的考题,通常是想到暴力遍历,接着想想使用常用的双指针方法进行优化,如果感觉使用双指针不太行,再思考使用其他方法。下面给出我对于数组题目的一般技巧的总结,通过多做数组的题目,你能认识到在做与数组有关的题目时,...
法一:双指针,先找负数与非负数的边界 classSolution {public: vector<int> sortedSquares(vector<int>&nums) { vector<int>res;if(nums[0] >=0){//全部非负的情况for(int&num : nums) res.emplace_back(num*num);returnres; }intsize =nums.size();if(nums[size-1] <=0){//全部非正的情况for(...
输入: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] 进阶: 请你设计时间复杂度为O(n) 的算法解决本问题 题解一:这个题暴力方法很简答,就是...
LeetCode977.有序数组的平方 1.问题描述 给你一个按 非递减顺序 排序的整数数组 nums ,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1: 9 1 2 3 4 输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 ...
977.有序数组的平方 1. 题目 给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例1: 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100]
算法刷题笔记【数组】977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例1: 输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100],排序后,数组变为[0,1,9,16,100] ...
LeetCode977 有序数组的平方 977. 有序数组的平方 - 力扣(Leetcode) 初见题目的想法 一开始我想的是设置一个left指针和一个right指针,从数组“中间”开始向两边比较。这个逻辑是错误的,应该是找到平方值最小的那个元素的位置作为双指针的起始位置,而不是取数组的“中间”。
977. 有序数组的平方,思路:这个题感觉豪无难度,将元素先平方后排序就完事#空间复杂度O(n)classSolution:defsortedSquares(self,nums:List[int])->List[int]:#思路将每个元素覆盖成它的平方后排序returnsorted([i**2foriinnums])降低一下空间复杂度class
题目链接:977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II 第一想法 977.有序数组的平方 看到这道题的第一想法就是暴力求解,毕竟题目也很直白,我就只想到将元素都平方后排序。这种求解方法的时间复杂度为O(nlogn)。 (知识点:sort()函数的时间复杂度为O(nlogn).) ...
[leetCode]977. 有序数组的平方解法 双指针 定义两个指针指向数组前后,比较指向元素的平方大小,从答案数组之后向前填充 class Solution { public int[] sortedSquares(int[] A) { if (A == null) return null; int n = A.length; int[] ans = new int[n]; int i = 0, j = n - 1, p = n...