草庐IT

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

977.有序数组的平方题目链接:977.有序数组的平方题目描述:给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。看到第一印象,采用暴力解法,爽歪歪,且没有超过时间限制。代码如下:classSolution{public:vectorint>sortedSquares(vectorint>&nums){vectorint>result;for(inti=0;inums.size();i++){result.push_back(nums[i]*nums[i]);}sort(result.begin(),result.end());returnre

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

LeetCode977.有序数组的平方题目链接:LeetCode977.有序数组的平方 暴力解法:classSolution{public:vectorsortedSquares(vector&nums){intsize=nums.size();for(inti=0;i思路:最开始看到这个题的时候,第一反应就是先把每个元素平方,再用一个sort函数进行排序。小结:该解法利用了sort函数,相比起自己写排序函数更为简单,但时间复杂度比双指针法高,应该是比较容易想到的解法。双指针法:classSolution{public:vectorsortedSquares(vector&nums){ints

牛客小白月赛#59(A~F)

牛客小白月赛#59文章目录牛客小白月赛#59A.我会开摆B.走廊的灯C.输出练习D.国际象棋E.弹珠碰撞F.困难卷积A.我会开摆题意给定n=4的方阵,问是否存在n=2的方阵中四个格子全是一个字符的情况题解直接枚举所有点当n=2方阵的左上角,看是否符合题目要求注意:检查n=2的方阵时,要先排除某点为左上角没有n=2方阵情况代码#includeusingnamespacestd;chara[4][4];boolcheck(intx,inty){//检查以该点为左上角的,n=2的方阵是否符合要求charc=a[x][y];for(inti=x;ix+2;i++)for(intj=y;jy+2;j++

刷题day2| 977.有序数组平方 209.长度最小数组,59.螺旋矩阵||

第一章数组part02977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II,总结建议大家先独立做题,然后看视频讲解,然后看文章讲解,然后在重新做一遍题,把题目AC,最后整理成今日当天的博客拓展题目可以先不做详细布置977.有序数组的平方题目建议:本题关键在于理解双指针思想题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/文章讲解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%9

刷题day2| 977.有序数组平方 209.长度最小数组,59.螺旋矩阵||

第一章数组part02977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II,总结建议大家先独立做题,然后看视频讲解,然后看文章讲解,然后在重新做一遍题,把题目AC,最后整理成今日当天的博客拓展题目可以先不做详细布置977.有序数组的平方题目建议:本题关键在于理解双指针思想题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/文章讲解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%9

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

leetcode977.有序数组的平方题目描述:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。初步分析:既然是递增数列,那么数列第一个元素肯定是最小的,最后一个元素是最大的。第一个元素平方过后有三种情况,第一种:第一个元素是负数,平方后比最后一个元素的平方大。第二种:第一个元素是负数,平方后比最后一个元素平方小。第三种:第一个元素是正数,那它平方后肯定比最后一个元素平方小。根据题目分析可以发现本题其实就是头尾元素的比较。思路:设置一个头指针和尾指针,然后开一个存储平方数组,根据头尾指针所指向的数平方后比较大小的结果更新新的平方

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

目录LeeCode977有序数组的平方解法一:暴力排序解法二:双指针法注意LeeCode209长度最小的子数组解法一:暴力解法解法二:滑动窗口注意LeeCode59螺旋矩阵II解法注意总结LeeCode977有序数组的平方题目链接:力扣题目链接解法一:暴力排序直接对数组元素平方,将得到的新数组sort排序。classSolution{public:vectorsortedSquares(vector&nums){for(inti=0;i时间复杂度:O(n+nlogn)解法二:双指针法定义一个和原数组大小相等的新数组用于存储排序后的元素。定义两个指针,分别指向数组的首尾,比较指针所指两个元素平方

从零开始学Java59之StringBuilder与StringBuffer

前言最近的这几篇文章,我们一直在给大家讲解字符串相关的内容。其实字符串按照可变性,可以分为不可变字符串与可变字符串。我们前面学习的String就属于不可变字符串,因为理论上一个String字符串一旦定义好,其内容就不可再被改变,这些内容我们已经在前面都学习过了。但实际上,还有另一种可变字符串,包括StringBuilder和StringBuffer两个类。那可变字符串有什么特点?又怎么使用呢?接下来就请大家跟我一起来学习吧。全文大约【6000】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考…一

【代码随想录训练营】【Day02】第一章|数组|977.有序数组的平方|209.长度最小的子数组|59.螺旋矩阵II|总结

977.有序数组的平方题目详细:LeetCode.977解这道题的思路和方法有很多,最简单的方法就是计算出数组中每个元素的平方数,并记录在新数组中,最后对新数组进行排序即可得到答案,但这个方法效率不高,所以在这里我们讨论一种时间复杂度为O(n)的算法来解决本问题。首先,由题意可知:输入的整数数组nums是非递减顺序排序的(即有序的、递增的)返回每个数字的平方组成的新数组负数的平方数为正数正数的平方数为正数通过以上的信息易知,假如我们按从小到大的顺序,依次计算每个数组元素的平方数后,是无法保证新数组依旧是有序的,且此做法并没有利用到数组nums是有序的这一特点。那么如何去利用nums数组是有序的

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

代码随想录算法训练营第二天|977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II。977.有序数组的平方209.长度最小的子数组59.螺旋矩阵II977.有序数组的平方题目链接:977.有序数组的平方,难度:简单【实现代码】classSolution{public:vectorint>sortedSquares(vectorint>&nums){vectorint>result(nums);intk=nums.size();inti=0;intj=nums.size()-1;while(k--){if(nums[i]*nums[i]nums[j]*nums[j]){result