classSolution{public:voidsetZeroes(vector<vector<int>>& a){int n = a.size(), m = a[0].size();
vector<int>r(n,0),c(m,0);for(int i =0; i < n; i ++)for(int j =0; j < m; j ++)if(a[i][j]==0)
r[i]=1, c[j]=1;for(int i =0; i < n; i ++)if(r[i])for(int j =0; j < m; j ++)
a[i][j]=0;for(int i =0; i < m; i ++)if(c[i])for(int j =0; j < n; j ++)
a[j][i]=0;}};
classSolution{public:intlengthOfLongestSubstring(string s){
map<char,int> mp;int res =0;for(int i =0, j =0; i < s.size(); i ++){
mp[s[i]]++;while(mp[s[i]]>1)-- mp[s[j ++]];
res =max(res, i - j +1);}return res;}};
5. 最长回文子串
classSolution{public:
string longestPalindrome(string s){int n = s.size();
string str;for(int i =0; i < n; i ++){int l = i -1, r = i +1;while(l >=0&& r < n && s[l]== s[r]) l --, r ++;if(r - l -1> str.size()) str = s.substr(l +1, r - l -1);
l = i, r = i +1;while(l >=0&& r < n && s[l]== s[r]) l --, r ++;if(r - l -1> str.size()) str = s.substr(l +1, r - l -1);}return str;}};
334. 递增的三元子序列
classSolution{public:boolincreasingTriplet(vector<int>& a){int n = a.size();
vector<int>maxn(n, INT_MIN);for(int i = n -1; i; i --)if(i == n -1)
maxn[i]= a[i];else
maxn[i]=max(a[i], maxn[i +1]);int minn = a[0];for(int i =1; i < n -1; i ++){if(minn < a[i]&& a[i]< maxn[i +1])returntrue;
minn =min(minn, a[i]);}returnfalse;}};