今天第二天刷题,基础欠缺还很多,慢慢一点一点补!加油!今天主要学习整理977,快速学习209和59。977 有序数组的平方题目给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100]排序后,数组变为[0,1,9,16,100]https://leetcode.cn/problems/squares-of-a-sorted-array初始思路根据提示使用双指针,定义了一个快指针一个慢指针分别比较前一个元素和后一个元素,
今天第二天刷题,基础欠缺还很多,慢慢一点一点补!加油!今天主要学习整理977,快速学习209和59。977 有序数组的平方题目给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100]排序后,数组变为[0,1,9,16,100]https://leetcode.cn/problems/squares-of-a-sorted-array初始思路根据提示使用双指针,定义了一个快指针一个慢指针分别比较前一个元素和后一个元素,
代码随想录第九期第三天打卡记录链表基础:structListNode{intval;//结点上存储元素ListNode*next;//指向下一个节点的指针ListNode(intx):val(x),next(nullptr){}//结点的构造函数};注意:不写构造函数的话,C++会自动的生成这样的一个构造函数,单数不会生成任何的成员变量。插入/删除(时间复杂度)查询(时间复杂度)使用场景数组O(n)O(n)O(n)O(1)O(1)O(1)数据量固定,频繁查询,较少增删链表O(1)O(1)O(1)O(n)O(n)O(n)数据量不固定,频繁增删,较少查询59.螺旋矩阵:link以下部分为c++相关
代码随想录第九期第三天打卡记录链表基础:structListNode{intval;//结点上存储元素ListNode*next;//指向下一个节点的指针ListNode(intx):val(x),next(nullptr){}//结点的构造函数};注意:不写构造函数的话,C++会自动的生成这样的一个构造函数,单数不会生成任何的成员变量。插入/删除(时间复杂度)查询(时间复杂度)使用场景数组O(n)O(n)O(n)O(1)O(1)O(1)数据量固定,频繁查询,较少增删链表O(1)O(1)O(1)O(n)O(n)O(n)数据量不固定,频繁增删,较少查询59.螺旋矩阵:link以下部分为c++相关
1.有序数组的平方977.有序数组的平方第一想法:暴力破解看完题解想法:朝着双指针方向想遇到困难:用双指针的话,一开始想到两边指针往中间靠,逐个将最大值赋给结果数组。和题解不同的是,循环条件我写了 while(left!=right){...},相比于题解的 while(left,我需要在后面单独为第一个元素赋值(因为没有cover到最后一个元素就跳出循环了)判断条件中,对于nums[left]==nums[right]这种情况,一开始的想法是两头同时逼近与赋值。但是在最后两个元素相同时,此想法报错(例如:[-1,0,0,2])。因此左右指针相等时,可以将其归到两边指针中的一边执行。publi
1.有序数组的平方977.有序数组的平方第一想法:暴力破解看完题解想法:朝着双指针方向想遇到困难:用双指针的话,一开始想到两边指针往中间靠,逐个将最大值赋给结果数组。和题解不同的是,循环条件我写了 while(left!=right){...},相比于题解的 while(left,我需要在后面单独为第一个元素赋值(因为没有cover到最后一个元素就跳出循环了)判断条件中,对于nums[left]==nums[right]这种情况,一开始的想法是两头同时逼近与赋值。但是在最后两个元素相同时,此想法报错(例如:[-1,0,0,2])。因此左右指针相等时,可以将其归到两边指针中的一边执行。publi
目录977 有序数组的平方209 长度最小的子数组59 螺旋矩阵II977 有序数组的平方题目链接代码随想录题解看到题目的第一想法:这道题之前有遇到过,第一思路是判断数组是否是全为正数或者全为负数,对上面这两种情况单独处理;如果数组既包含正数也包含负数,就找到第一个出现的正数,而后拿两个指针分别向左右移动,但是这块的处理上一直无法ac,后面在仔细研究一下。看完代码随想录之后的想法:卡哥的方法清晰明了~代码实现:我的思路:对于有break的for循环,当break的时候,后面那次i++是不执行的;所以处理后面的循环时i+1;当一侧到边界的时候,另一侧肯定未到边界,比如左侧已越界,需要rightc
目录977 有序数组的平方209 长度最小的子数组59 螺旋矩阵II977 有序数组的平方题目链接代码随想录题解看到题目的第一想法:这道题之前有遇到过,第一思路是判断数组是否是全为正数或者全为负数,对上面这两种情况单独处理;如果数组既包含正数也包含负数,就找到第一个出现的正数,而后拿两个指针分别向左右移动,但是这块的处理上一直无法ac,后面在仔细研究一下。看完代码随想录之后的想法:卡哥的方法清晰明了~代码实现:我的思路:对于有break的for循环,当break的时候,后面那次i++是不执行的;所以处理后面的循环时i+1;当一侧到边界的时候,另一侧肯定未到边界,比如左侧已越界,需要rightc
力扣链接:https://leetcode.cn/problems/spiral-matrix-ii/题目 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 nxn 正方形矩阵 matrix 。 示例1: 输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]] 示例2:输入:n=1输出:[[1]] 刚开始拿到这个题目,我想大家跟我一样,应该是很懵逼的状态,我只知道要从左到右,从上到下,但是具体怎么弄,我也不太会,属实是一看就会,一写就废。 由外向内一圈一圈这么画下去。可以发现这里的边界条件非常多,在一个循环中,如此多的边界条
力扣链接:https://leetcode.cn/problems/spiral-matrix-ii/题目 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 nxn 正方形矩阵 matrix 。 示例1: 输入:n=3输出:[[1,2,3],[8,9,4],[7,6,5]] 示例2:输入:n=1输出:[[1]] 刚开始拿到这个题目,我想大家跟我一样,应该是很懵逼的状态,我只知道要从左到右,从上到下,但是具体怎么弄,我也不太会,属实是一看就会,一写就废。 由外向内一圈一圈这么画下去。可以发现这里的边界条件非常多,在一个循环中,如此多的边界条