1.auto
for (auto x : nums)的作用:
相当于:
for (vector< int >::iterator iter = nums.begin(); iter != nums.end(); iter++)
for(auto a:b)中b为一个容器,效果是利用a遍历并获得b容器中的每一个值,但是a无法影响到b容器中的元素。
for(auto &a:b)中加了引用符号,可以对容器中的内容进行赋值,即可通过对a赋值来做到容器b的内容填充。
125验证回文串
auto isVowel = [vowels = "aeiouAEIOU"s](char ch)
{
return vowels.find(ch) != string::npos;
};
209.长度最小的子数组
方法一:暴力解法
class Solution {
public:
int minSubArrayLen(int s, vector<int>& nums) {
int n = nums.size();
if (n == 0) {
return 0;
}
int ans = INT_MAX;
for (int i = 0; i < n; i++) {
int sum = 0;
for (int j = i; j < n; j++) {
sum += nums[j];
if (sum >= s) {
ans = min(ans, j - i + 1);
break;
}
}
}
return ans == INT_MAX ? 0 : ans;
}
};
方法二:滑动窗口
int minSubArrayLen(int target, vector<int>& nums) {
if(nums.size()==0)
{
return 0;
}
if(nums.size()==1)
{
return nums[0]>=target?1:0;
}
int n=nums.size();
int len=INT_MAX;
int left=0;
int right=0;
int windows=0;
while(right<n)
{
windows+=nums[right];
while(windows>=target)
{
len=min(len,right-left+1);
windows-=nums[left];
left++;
}
right++;
}
return len==INT_MAX?0:len;
}
187.重复的DNA序列
290 单词规律
istringstream in(str);
auto
优先级