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

997有序数组的平方

  1. 平方后快排,o(nlogn)

  1. 双指针,两头向中间走,平方比较

class Solution {
public:
    vector sortedSquares(vector& nums) {
        vector re(nums.size(),0);
        int left=0;
        int right=nums.size()-1;
        int numss=nums.size();
        while(left<=right)
        {
            if(nums[left]*nums[left]

209长度最小的子数组

  1. 两个for的暴力循环

  1. 双指针,若遍历起始位置,则仍是遍历所有集合,o(n^2)

  1. 双指针,若遍历终止位置,动态起始位置,区间sum>s移动起始位置

class Solution {
public:
    int minSubArrayLen(int target, vector& nums) {
        int right=0;
        int left=0;
        int sum=0;
        int longs=nums.size()+1;
        for(;right=target)
            {
                longs=min(longs,right-left+1);
                sum-=nums[left++];
            }
        }
        return longs!=nums.size()+1?longs:0;
    }
};

59螺旋矩阵

保证边界条件一致[),循环不变量,操作同意

class Solution {
public:
    vector> generateMatrix(int n) {
        vector> v;
        v.resize(n);
        for(int i=0;i

你可能感兴趣的:(leedcode,算法)