草庐IT

代码随想录算法训练营第二天| 977.有序数组的平方、 209.长度最小的子数组、59.螺旋矩阵II

977.有序数组的平方思路:数组是非递减的,因此数组的单调性呈V形,数组平方的最大值肯定出现在边界,所以我们可以对边界进行检查,将平方数大的插入新的数组的尾部。问题:可能受到了移除元素那题的影响,刚开始一直把自己局限在空间复杂度O(1)且时间复杂度O(N)的方法(即只在原数组进行操作),最后才发现不可行浪费时间。算法完成过程中可能是写迷糊了,犯了很多低级错误,包括比较条件没用平方,进行操作后两个指针没有更新。说明在检查过程没有行程统一的习惯。classSolution{public:vectorsortedSquares(vector&nums){intn=nums.size();inti=0

代码随想录算法训练营第二天| 977.有序数组的平方、 209.长度最小的子数组、59.螺旋矩阵II

977.有序数组的平方思路:数组是非递减的,因此数组的单调性呈V形,数组平方的最大值肯定出现在边界,所以我们可以对边界进行检查,将平方数大的插入新的数组的尾部。问题:可能受到了移除元素那题的影响,刚开始一直把自己局限在空间复杂度O(1)且时间复杂度O(N)的方法(即只在原数组进行操作),最后才发现不可行浪费时间。算法完成过程中可能是写迷糊了,犯了很多低级错误,包括比较条件没用平方,进行操作后两个指针没有更新。说明在检查过程没有行程统一的习惯。classSolution{public:vectorsortedSquares(vector&nums){intn=nums.size();inti=0

代码随想录算法训练营第二天 | 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵II

977.有序数组的平方题目链接:977.有序数组的平方文章讲解:977.有序数组的平方视频讲解:双指针法经典题目|LeetCode:977.有序数组的平方_哔哩哔哩_bilibili 暴力解法思路:看题目要求是将数组中的元素平方再排序,暴力解法就是简单的把数组中的每个元素进行平方,然后将平方后的元素进行排序。代码:classSolution{public:vectorsortedSquares(vector&A){for(inti=0;i时间复杂度:O(nlogn)(取决于快排)双指针解法思路:一个数组,他的元素进行平方后,最大值一定会在两边不会在中间,比如-4,-1,0,3,10,五个数字经

代码随想录算法训练营第二天 | 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II、每日一题1615.最大网络秩

977.有序数组的平方创建新的数组保存结果,双指针classSolution{public:vectorsortedSquares(vector&nums){vectorresult(nums.size(),0);intn=nums.size()-1;for(intleft=0,right=nums.size()-1;leftnums[right]*nums[right]){result[n--]=nums[left]*nums[left];++left;}else{result[n--]=nums[right]*nums[right];--right;}}returnresult;}};20

LeetCode-Day2-977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,

977.有序数组的平方:双指针法,原来数组是有序的,说明平房之后最左和最右两边的平方和是最大的,比较最大的插入新的vector数组,然后移动指针选下一个元素进行比较。classSolution{public:vectorsortedSquares(vector&nums){intleft=0;intright=nums.size()-1;intk=right;vectorres(nums.size(),0);while(left209:长度最小的子数组接下来就开始介绍数组操作中另一个重要的方法:滑动窗口。所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。在暴力解法

LeetCode977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

LeetCode977.有序数组的平方思路:    双指针应用    因为数组是有序的,数组中可能存在负数,所以其平方的最大值只可能是数组的头或尾,因此可以定义两个指针,i指向头,j指向尾。同时定义一个新数组result,让k指向新数组的最后一个元素,当nums[i]*nums[i]>=nums[j]*nums[j],result[k]=nums[i]*nums[i],k--,i++;nums[i]*nums[i]代码:classSolution{public:vectorsortedSquares(vector&nums){vectorresult(nums.size(),0);intk=n

LeetCode977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

LeetCode977.有序数组的平方思路:    双指针应用    因为数组是有序的,数组中可能存在负数,所以其平方的最大值只可能是数组的头或尾,因此可以定义两个指针,i指向头,j指向尾。同时定义一个新数组result,让k指向新数组的最后一个元素,当nums[i]*nums[i]>=nums[j]*nums[j],result[k]=nums[i]*nums[i],k--,i++;nums[i]*nums[i]代码:classSolution{public:vectorsortedSquares(vector&nums){vectorresult(nums.size(),0);intk=n

59道JS常见逻辑算法程序题(附带题目和答案)

输出10到1的偶数输出1-100间能被7整除的数输出1-21之间不能被7整除数的累加和输出1-10与5相乘的结果计算1-100的和并输出结果把100-200之间不能被3整除的数输出将1998-2008之间的闰年年份输出求乘积等于100的所有乘数和被乘数(以一对的方式输出)求斐波那契数列40个数,这个数列的特点为:第1,2两个数为1和1,从第三个数开始,该数是前面两个数的和,即1,1,2,3,5,8,13,21......求数组中所有元素的和求数组中所有元素的平均值求数组中所有元素的最大值倒序遍历输出数组把数组中的每一个元素用&拼接到一起并输出去掉数组中重复的0,并把其他的数据放在一个新的数组中

代码随想录算法训练营第二天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

代码随想录算法训练营第二天|977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II977.有序数组的平方:computer:暴力排序:computer:双指针法:eyes:题目总结:eyes:209.长度最小的子数组:computer:暴力解法:computer:滑动窗口:eyes:题目总结:eyes:59.螺旋矩阵II:eyes:题目总结:eyes::balloon:心得收获977.有序数组的平方题目链接视频讲解给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,

LeetCode第一章数组|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

977_有序数组的平方题目链接:977.有序数组的平方给你一个按非递减顺序排序的整数数组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]解法一:双指针法本题关键就在于要按照非递减的顺序来完成,原数组中是存在负数的,这样平方后的结果大小顺序就会发生变化。首先想到可以采用暴力解法,先全部平方再整体排序,但这种方法时间复