草庐IT

代码随想录day02| 977. 有序数组的平方、209. 长度最小的子数组、59. 螺旋矩阵 II

目录977 有序数组的平方209 长度最小的子数组59 螺旋矩阵II977 有序数组的平方题目链接代码随想录题解看到题目的第一想法:这道题之前有遇到过,第一思路是判断数组是否是全为正数或者全为负数,对上面这两种情况单独处理;如果数组既包含正数也包含负数,就找到第一个出现的正数,而后拿两个指针分别向左右移动,但是这块的处理上一直无法ac,后面在仔细研究一下。看完代码随想录之后的想法:卡哥的方法清晰明了~代码实现:我的思路:对于有break的for循环,当break的时候,后面那次i++是不执行的;所以处理后面的循环时i+1;当一侧到边界的时候,另一侧肯定未到边界,比如左侧已越界,需要rightc

代码随想录day02| 977. 有序数组的平方、209. 长度最小的子数组、59. 螺旋矩阵 II

目录977 有序数组的平方209 长度最小的子数组59 螺旋矩阵II977 有序数组的平方题目链接代码随想录题解看到题目的第一想法:这道题之前有遇到过,第一思路是判断数组是否是全为正数或者全为负数,对上面这两种情况单独处理;如果数组既包含正数也包含负数,就找到第一个出现的正数,而后拿两个指针分别向左右移动,但是这块的处理上一直无法ac,后面在仔细研究一下。看完代码随想录之后的想法:卡哥的方法清晰明了~代码实现:我的思路:对于有break的for循环,当break的时候,后面那次i++是不执行的;所以处理后面的循环时i+1;当一侧到边界的时候,另一侧肯定未到边界,比如左侧已越界,需要rightc

leetcode 560. Subarray Sum Equals K 和为 K 的子数组(中等)

一、题目大意https://leetcode.cn/problems/subarray-sum-equals-k给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的连续子数组的个数。示例1:输入:nums=[1,1,1],k=2输出:2示例2:输入:nums=[1,2,3],k=3输出:2提示:1-1000-107二、解题思路三个思路,第一个:三层遍历,遍历i从0到n,第二层遍历j从i到n,第三层遍历i-j,求和,这种方法会超时第二个:求累加和sum[i]=num[0]-num[i-1],这样二层遍历得到(i,j),检查sum[j]-sum[i]第三个:定义一个hash来保存s

leetcode 560. Subarray Sum Equals K 和为 K 的子数组(中等)

一、题目大意https://leetcode.cn/problems/subarray-sum-equals-k给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的连续子数组的个数。示例1:输入:nums=[1,1,1],k=2输出:2示例2:输入:nums=[1,2,3],k=3输出:2提示:1-1000-107二、解题思路三个思路,第一个:三层遍历,遍历i从0到n,第二层遍历j从i到n,第三层遍历i-j,求和,这种方法会超时第二个:求累加和sum[i]=num[0]-num[i-1],这样二层遍历得到(i,j),检查sum[j]-sum[i]第三个:定义一个hash来保存s

「双指针/kmp」通过连接另一个数组的子数组得到一个数组(力扣第1764题)

本题为12月17日力扣每日一题题目来源:力扣第1764题题目tag:双指针kmp题面题目描述给你一个长度为n的二维整数数组groups,同时给你一个整数数组nums。你是否可以从nums中选出n个不相交的子数组,使得第i个子数组与groups[i](下标从0开始)完全相同,且如果i>0,那么第(i-1)个子数组在nums中出现的位置在第i个子数组前面。(也就是说,这些子数组在nums中出现的顺序需要与groups顺序相同)如果你可以找出这样的n个子数组,请你返回true,否则返回false。如果不存在下标为k的元素nums[k]属于不止一个子数组,就称这些子数组是不相交的。子数组指的是原数组中

「双指针/kmp」通过连接另一个数组的子数组得到一个数组(力扣第1764题)

本题为12月17日力扣每日一题题目来源:力扣第1764题题目tag:双指针kmp题面题目描述给你一个长度为n的二维整数数组groups,同时给你一个整数数组nums。你是否可以从nums中选出n个不相交的子数组,使得第i个子数组与groups[i](下标从0开始)完全相同,且如果i>0,那么第(i-1)个子数组在nums中出现的位置在第i个子数组前面。(也就是说,这些子数组在nums中出现的顺序需要与groups顺序相同)如果你可以找出这样的n个子数组,请你返回true,否则返回false。如果不存在下标为k的元素nums[k]属于不止一个子数组,就称这些子数组是不相交的。子数组指的是原数组中

有序数组的平方&长度最小的子数组&螺旋矩阵Ⅱ

一、有序数组的平方977.有序数组的平方leetcode链接1.方法概述双"指针"解法:因为数组本来是有序的,平方后可能出现的两端大数值大的情况。所以从数组两端开始遍历,谁大就将值赋给新建数组reslut的末端位置index。然后当两端相遇,停止遍历。2.具体实现Java实现版本点击查看代码classSolution{publicint[]sortedSquares(int[]nums){intleft=0;intright=nums.length-1;int[]arr=newint[nums.length];intindex=arr.length-1;while(leftnums[right

有序数组的平方&长度最小的子数组&螺旋矩阵Ⅱ

一、有序数组的平方977.有序数组的平方leetcode链接1.方法概述双"指针"解法:因为数组本来是有序的,平方后可能出现的两端大数值大的情况。所以从数组两端开始遍历,谁大就将值赋给新建数组reslut的末端位置index。然后当两端相遇,停止遍历。2.具体实现Java实现版本点击查看代码classSolution{publicint[]sortedSquares(int[]nums){intleft=0;intright=nums.length-1;int[]arr=newint[nums.length];intindex=arr.length-1;while(leftnums[right

JZ010:和为K的子数组

title:和为k的子数组?题目描述题目链接:和为k的子数组、leetcode一样的题目?解题思路连续子数组、达到一定值,这些条件好像都是滑动窗口的暗示啊,实际上,不能用滑动窗口!原因:滑动窗口必须都是正数或者负数,因为这样左右指针单向滑动才能一个负责增大一个负责减少!解法:前缀和+哈希表通过pre计算前缀,同时不断将前缀加入哈希表mp中,哈希表存储的就是前缀的和,通过:当前遍历到的前缀pre-中间子数组k=前面的前缀来求解!classSolution{public:intsubarraySum(vector&nums,intk){unordered_mapmp;mp[0]=1;//确保可以以

JZ010:和为K的子数组

title:和为k的子数组?题目描述题目链接:和为k的子数组、leetcode一样的题目?解题思路连续子数组、达到一定值,这些条件好像都是滑动窗口的暗示啊,实际上,不能用滑动窗口!原因:滑动窗口必须都是正数或者负数,因为这样左右指针单向滑动才能一个负责增大一个负责减少!解法:前缀和+哈希表通过pre计算前缀,同时不断将前缀加入哈希表mp中,哈希表存储的就是前缀的和,通过:当前遍历到的前缀pre-中间子数组k=前面的前缀来求解!classSolution{public:intsubarraySum(vector&nums,intk){unordered_mapmp;mp[0]=1;//确保可以以