草庐IT

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

目录977.有序数组的平方方法一 暴力解法方法二 双指针法209.长度最小的子数组 59.螺旋矩阵II977.有序数组的平方题目链接方法一 暴力解法每个数平方之后,排个序classSolution{public:vectorsortedSquares(vector&A){for(inti=0;i复合赋值:是指先执行运算符指定的运算,然后再将运算结果存储到运算符左边操作数指定的变量中。例如:inta=10;a+=20;=>a=a+20快速排序:Sort函数使用模板:sort(首元素地址(必填),尾元素地址的下一个地址(必填),比较函数(非必填));方法二 双指针法思路:由于数组是有序的,所以平方

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

5.25号昨天摆烂了没做,今天5.26号补昨天的977总共花了1.5h,还是很不熟练,问题出在1自己思路太复杂2实现时出bug修bug用双指针,一开始自己想的思路有点过于复杂,还分情况讨论后来发现根本不用不过两个双指针时间复杂度都是O(n)这个版本代码里出现过的问题有:vector后面要pushback的话初始化就要设成0好点,后面要是想vec[i]赋值这样初始话要vectorres(size,value);这样比较好,找了半天错误其实问题就是size初始化0和后面pushback没统一vectorsortedSquares(vector&nums){vectorres(0);//mixedi

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

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]提示:1-104nums已按非递减顺序排序进阶:请你设计时间复杂度为O(n)的算法解决本问题思路:1.个人首先想到的是冒泡排序,即将数组平方后输出新的数组,再将新数组进行冒泡排序,测试用例运行都成功,但提交

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

977.有序数组的平方力扣题目链接给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100],排序后,数组变为[0,1,9,16,100]#思路●看到题目的第一想法,直接暴力解+sort排序classSolution{public:vectorint>sortedSquares(vectorint>&nums){for(inti=0;inums.size();i++){nums[i]=nums[i]*nums[i];}

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

题目题目链接,代码题目链接,代码题目链接,代码初见思路977.有序数组的平方想到了用双指针方法,一头一尾。在whileloop中先计算平方并且inplace替换平方的结果。谁的平方大,就把对应的平方结果存进resultvector,并且更新对应脚标,l往右移,r往左移。测试的结果显示内容数字不正常,发现不应该inplace替换平方的结果。209.长度最小的子数组除了暴力解法没有思路,于是看了一下代码随想录的解析,看了一下滑动窗口是怎么用的。主要是需要注意的就是,如果sum比target小的话就只移动窗口右边的脚标,比sum大或者等于的话就移动左边的脚标并且从sum中减去原本左脚标指向的值。用了

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

今天巩固了双指针的思想,特别是理解了滑动窗口的方法,加深了对循环不变量的理解。一、977.有序数组的平方题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/该题需要考虑到,若一个有序数组,如[-4,-1,0,3,10],平方后的[16,1,0,9,100]的最小值一定在区间内部。在求解时,定义一个指针i指向数组开始的位置,一个指针j指向数组的末尾,两个指针从两端向中间移动。比较两个指针所指数值的平方大小后,用一个数组result接收新数组的值,用指针k来表示其下标。由于i、j是从两边向中间移动,result数组必然是先获取到较

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

螺旋矩阵59.螺旋矩阵II根据第一次循环去写样例,但要记得其中的条件要设置成之后也要使用的循环变量【用0作为边界条件判断,忽略了循环量】代码如下,已经详细注释了每一步的目的,可以看出while循环里判断的情况是很多的,代码里处理的原则也是统一的左闭右开。/**@lcapp=leetcode.cnid=59lang=cpp**[59]螺旋矩阵II*///@lccode=startclassSolution{public:vector>generateMatrix(intn){//判断有几行几列vector>res(n,vector(n,0));//起始位置intstartX=0;intstart

物联网开发笔记(59)- 使用Micropython开发ESP32开发板之控制合宙4g Air724U模块

一、目的       这一节我们学习如何使用我们的ESP32开发板来控制合宙4gAir724U模块。二、环境       ESP32+合宙4gAir724U模块+ThonnyIDE+几根杜邦线接线方法:注意连接方式:ESP32的RX2----->4G模块的TXESP32的TX2----->4G模块的RX三、介绍       1,数据流通图ESP32----->4G模块----->服务器(腾讯云、华为云等)       2,服务端        我们需要一个连接外网的服务器,大家可以用阿里、腾讯、华为等的服务器。        可以使用Linux、Windows,如果有经验就用Linux,如果想

D435i相机的标定及VINS-Fusion config文件修改

引言当我们想使用D435i相机去跑VINS-Fusion时,如果不把标定过的相机信息写入config文件中就运行,这样运动轨迹会抖动十分严重,里程计很容易漂。接下来将介绍如何标定D435i相机,并设置VINS-Fusion的config文件。一标定前的准备工作在标定前我们需要查看相机的加速度在静止时是否正常,标准是加速度计的N:9.8左右。通过打开realsense-viewer,点击MotionModule按键,然后放在Accel上观察。如果你的此数值不在9.8附近,就需要对IMU进行校准,不然最后运行VINS-Fusion会发生抖动。1.1校准IMU若IMU加速度计正常,可跳过下面的校准过

D435i相机的标定及VINS-Fusion config文件修改

引言当我们想使用D435i相机去跑VINS-Fusion时,如果不把标定过的相机信息写入config文件中就运行,这样运动轨迹会抖动十分严重,里程计很容易漂。接下来将介绍如何标定D435i相机,并设置VINS-Fusion的config文件。一标定前的准备工作在标定前我们需要查看相机的加速度在静止时是否正常,标准是加速度计的N:9.8左右。通过打开realsense-viewer,点击MotionModule按键,然后放在Accel上观察。如果你的此数值不在9.8附近,就需要对IMU进行校准,不然最后运行VINS-Fusion会发生抖动。1.1校准IMU若IMU加速度计正常,可跳过下面的校准过