977.有序数组的平方 https://leetcode.cn/problems/squares-of-a-sorted-array/暴力排序classSolution{public:vectorsortedSquares(vector&nums){for(inti=0;i时间复杂度为O(nlogn)双指针所给数组为有序数组,可以用双指针,但要考虑负数平方后的大小。创建新数组result,让k指向最后一个数,然后往前排序。classSolution{public:vectorsortedSquares(vector&nums){intk=nums.size()-1;vectorresult(n
977.有序数组的平方题目连接笔记双指针法:从两边开始遍历,选出平方值较大的数,从数组的后面开始插入。心得一开始想的是用两个指针从中间开始遍历,但是麻烦很多,代码还是简洁的好,应该多尝试反向思考。classSolution{public:vectorint>sortedSquares(vectorint>&nums){intleft=0;intright=nums.size()-1;vectorint>result(nums.size(),0);inti=nums.size()-1;while(leftright){if(nums[left]*nums[left]nums[right]*num
977.有序数组的平方题目链接:977.有序数组的平方方法一:暴力遍历varsortedSquares=function(nums){for(vari=0;inums.length-1;i++){nums[i]=Math.pow(nums[i],2)}returnnums.sort((a,b)=>{returna-b})}方法二:双指针数组是有序的平方后,数组的最大值是数组的两端varsortedSquares=function(nums){letnewArr=[]letk=nums.length-1//i,j首尾两个指针进行对比for(vari=0,j=nums.length-1;ij;){
977.有序数组的平方977.有序数组的平方-题目看到这个题目的第一想法是暴力解法,求出数组中每个数的平方后,对数组进行排序classSolution{public:vectorsortedSquares(vector&nums){for(inti=0;i然而题目要求时间复杂度为o(n),暴力解法时间复杂度为o(n+nlogn)。看了题解后发现可以利用双指针解法,因为对含有负数的有序数组,最大值只能在数组的两端,因此用两个指针分别指向数组的起点和末尾,对两个指针指向的值的平方进行计算,判断。classSolution{public:vectorsortedSquares(vector&nums
977.有序数组的平方力扣题目链接(opensnewwindow)给你一个按非递减顺序排序的整数数组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-104nums已按非递减顺序排序思路:暴力解法最直观的想法,莫过于:每个数平方之后,排个序,美滋滋,代码如下:classSolution{public:vec
977.有序数组的平方力扣题目链接(opensnewwindow)给你一个按非递减顺序排序的整数数组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-104nums已按非递减顺序排序思路:暴力解法最直观的想法,莫过于:每个数平方之后,排个序,美滋滋,代码如下:classSolution{public:vec
977.有序数组的平方力扣 这道题目最开始我是认为直接每个数平方然后再重新排序。这样可以通过,但是有更简便的方法,双指针利用了排序数组的思想,最大的数只能从数组的首尾两端产生。所以新建一个数组然后每次都放进去即可。209.长度最小的子数组力扣 题目属于典型的滑动窗口问题,从最开始的一直往后找知道找到合适的结点。我这道题目最开始少考虑了当他没有找到符合题目要求的数组,直接返回了res,所以出错。59.螺旋矩阵II力扣class Solution {public: vector> generateMatrix(int n) { vector> res(n,vector(n,0)
977.有序数组的平方力扣 这道题目最开始我是认为直接每个数平方然后再重新排序。这样可以通过,但是有更简便的方法,双指针利用了排序数组的思想,最大的数只能从数组的首尾两端产生。所以新建一个数组然后每次都放进去即可。209.长度最小的子数组力扣 题目属于典型的滑动窗口问题,从最开始的一直往后找知道找到合适的结点。我这道题目最开始少考虑了当他没有找到符合题目要求的数组,直接返回了res,所以出错。59.螺旋矩阵II力扣class Solution {public: vector> generateMatrix(int n) { vector> res(n,vector(n,0)
Leetcode977-有序数组的平方|LeetCode209-长度最小的子数组|Leetcode59-螺旋矩阵Leetcode977-有序数组的平方给你一个按非递减顺序排序的整数数组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]方法一-双指针法classSolution{public:vectorint>so
977.有序数组的平方题目链接1暴力解法classSolution{public:vectorsortedSquares(vector&nums){intsize=nums.size();for(inti=0;i2双指针想到了双指针但是只考虑了两端比谁小,没有考虑到是两者比谁大,大的放后面。vector在用[]赋元素时要初始化大小,比如vectornums(size),不然会报错runtimeerror:referencebindingtonullpointeroftype。dclassSolution{public:vectorsortedSquares(vector&nums){intsi