Day 01 | 704. 二分查找、27. 移除元素
- 今日学习的文章链接和视频链接
- 自己看到题目的第一想法
- 看完代码随想录之后的想法
- 自己实现过程中遇到哪些困难
- 今日收获,记录一下自己的学习时长
Day 02 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
977.有序数组的平方
题目建议: 本题关键在于理解双指针思想
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
文章讲解:代码随想录
视频讲解: 双指针法经典题目 | LeetCode:977.有序数组的平方_哔哩哔哩_bilibili
class Solution {
public:vector<int> sortedSquares(vector<int>& nums) {int leftIndex = 0;int rightIndex = nums.size()-1;auto nums_out = nums;int i = 1;while(leftIndex<=rightIndex){if (nums[leftIndex]*nums[leftIndex] > nums[rightIndex]*nums[rightIndex]){nums_out[nums.size()-i] = nums[leftIndex]*nums[leftIndex];i++;leftIndex++;}else{nums_out[nums.size()-i] = nums[rightIndex]*nums[rightIndex];i++;rightIndex--;}}return nums_out;}
};
class Solution:def sortedSquares(self, nums: List[int]) -> List[int]:leftIndex = 0rightIndex = len(nums)-1# nums_out = nums # 不能这么做,这不是拷贝而是原地修改nums_out = [None]*len(nums)for i in range(len(nums)):if nums[leftIndex] ** 2 > nums[rightIndex] ** 2:nums_out[len(nums)-i-1] = nums[leftIndex]**2leftIndex +=1else:nums_out[len(nums)-i-1] = nums[rightIndex]**2rightIndex -=1print (nums_out)return nums_out
209.长度最小的子数组
题目建议: 本题关键在于理解滑动窗口,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。 拓展题目可以先不做。
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
文章讲解:代码随想录
视频讲解:拿下滑动窗口! | LeetCode 209 长度最小的子数组_哔哩哔哩_bilibili
59.螺旋矩阵II
题目建议: 本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
文章讲解:代码随想录
视频讲解:一入循环深似海 | LeetCode:59.螺旋矩阵II_哔哩哔哩_bilibili
总结
题目建议:希望大家 也做一个自己 对数组专题的总结
文章链接:代码随想录