简单题的艰难双百1630. 等差子数组--vector的锅

emmmmm本来写的好好的,,

 1 class Solution {
 2 public:
 3     bool check(vector<int>& nums, int l,int r){
 4         vector<int> temp;
 5         for(int i=l,j=0;i<=r;i++,j++){
 6             temp[j]=(nums[i]);
 7         }
 8         sort(temp.begin(),temp.end());
 9         int len=temp.size();
10        int flag=temp[1]-temp[0];
11         for(int j=1;j<len;j++){
12             if(temp[j]-temp[j-1]!=flag)
13             return false;
14             
15         }
16         return true;
17     }
18     vector<bool> checkArithmeticSubarrays(vector<int>& nums, vector<int>& l, vector<int>& r) {
19         vector<bool> ans;
20         int size=l.size();
21         for(int i=0;i<size;i++){
22             ans[i]=(check(nums,l[i],r[i]));
23         }
24         return ans;
25 
26 
27     }
28 };

但是它一直啥都运行不出来

就RE了

后来问了dl,发现这个vector,如果你不用push_back它是不会分配空间的,

,,,,,,我今年蓝桥杯也这么写的QAQ不错,还有进步空间呜呜呜

改:

class Solution {
public:
    bool check(vector<int>& nums, int l,int r){
        vector<int> temp;
        for(int i=l;i<=r;i++){
            temp.push_back(nums[i]);
        }
        sort(temp.begin(),temp.end());
        int len=temp.size();
       int flag=temp[1]-temp[0];
        for(int j=1;j<len;j++){
            if(temp[j]-temp[j-1]!=flag)
            return false;
            
        }
        return true;
    }
    vector<bool> checkArithmeticSubarrays(vector<int>& nums, vector<int>& l, vector<int>& r) {
        vector<bool> ans;
        int size=l.size();
        for(int i=0;i<size;i++){
            ans.push_back(check(nums,l[i],r[i]));
        }
        return ans;


    }
};
为了自己,和那些爱你的人
原文地址:https://www.cnblogs.com/zhmlzhml/p/13880416.html