代码随想录 day2


### 977
```C++
//暴力
#include<math.h>
#include<algorithm>
class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        int slow=0,fast=0;
        vector<int> res;
        while(fast<nums.size()){
            res.push_back(pow(nums[fast],2));
            fast++;
        }
        sort(res.begin(),res.end());
        return res;
    }
};

/*
一开始并未想到这个通过头尾指针控制,而是想到了快慢指针,怎么也想不通,看了视频思路一下就写出来了
*/
#include<algorithm>
#include<math.h>
class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        int slow=0,fast=nums.size()-1,count=nums.size()-1;
        vector<int> res(nums.size(),0);
        while(fast>=slow){
            if(nums[fast]*nums[fast]>nums[slow]*nums[slow]){
                res[count--]=nums[fast]*nums[fast];
                fast--;
            }else{
                res[count--]=nums[slow]*nums[slow];
                slow++;
            }
        }
        return res;
    }
};
```

### 209
```C++
//这个滑动窗口内部的while循环没想到,res这个判断条件没想到
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int slow=0,fast=0;
        int sum=0,res=nums.size()+1,subl=0;
        while(fast<nums.size()){
        
            sum+=nums[fast++];
            while(sum>=target){
                subl=fast-slow;
                sum-=nums[slow++];
                res=min(res,subl);
            }   
        }
        if(res==nums.size()+1){
            return 0;
        }
        return res;

    }
};
```

### 59


```c++
/*
1. vector二维数组的定义vector<vector<int>> x(n,vector<int>(n,0))
2. 边界条件保持一致
3. 奇数需要给中心位置赋值
*/
#include<vector>
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        int count=1;
        int startx=0,starty=0,offset=1;
        int num=n/2;
        int i=0,j=0;
        vector<vector<int>> res(n,vector<int>(n,0));
        while(num){
            for(j=starty;j<n-offset;j++){
                res[startx][j]=count++;
            }
            for(i=startx;i<n-offset;i++){
                res[i][j]=count++;
            }
            for(;j>starty;j--){
                res[i][j]=count++;
            }
            for(;i>startx;i--){
                res[i][j]=count++;
            }
            startx++;
            starty++;
            offset++;
            num--;
        }
        if(n%2!=0){
            res[startx][starty]=n*n;
        }

        return res;

    }
};
```

总结:思维有点僵化,不知道是不是刷题少的缘故。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值