LeetCode 977.有序数组的平方
视频连接: LeetCode 977
思路: 利用双指针,通过首指针和尾指针的平方值比较,大的那个装入新的vector数组中,然后再更新指针。
class Solution { public: vector<int> sortedSquares(vector<int>& nums) { int k = nums.size() - 1; vector<int> result(nums.size(), 0); //新设置一个跟传入数组容量一样的数组 for (int i = 0, j = nums.size() - 1; i <= j;) { //重点:设置指针的初始值,将两个指针各置在首位位置。 if (nums[i] * nums[i] < nums[j] * nums[j]) { result[k--] = nums[j] * nums[j]; j--; } else { result[k--] = nums[i] * nums[i]; i++; } } return result; } };
LeetCode 209.长度最小的子数组
视频连接: LeetCode209
思路:
class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { int result=INT32_MAX; int sum=0; //滑动窗口数量之和 int i=0; //滑动窗口起始位置 int subLength=0; //滑动窗口的长度 for(int j=0;j<nums.size();j++){ sum+=nums[j]; while(sum>=target){ subLength = (j-i+1); //取子序列的长度 result = result < subLength ? result:subLength; sum -= nums[i++]; } } return result==INT32_MAX?0:result; } };
LeetCode 59.螺旋矩阵II
视频链接: LeetCode59
思路: