简单题的艰难双百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; } };
为了自己,和那些爱你的人