4)只出现一次的数字
class Solution{
public:
int singleNumber(vector<int>& nums){
int ans = 0;
for(int i=0; i<=31; i++){
int total = 0;
for(int num : nums){
total += ((num>>i)&1);
}
if(total%3) ans += 1<<i;
}
return ans;
}
};
class Solution{
public:
int maxProduct(vector<string>& words){
vector<int> hash(words.size(), 0);
for(int i=0; i<words.size(); i++){
for(auto& ch : words[i]){
hash[i] |= 1 << (ch-'a');
}
}
int ret = 0;
for(int i=0; i<words.size(); i++){
for(int j=0; j<words.size(); j++){
if((hash[i] & hash[j]) == 0){
int ans = words[i].size() * words[j].size();
ret = max(ret, ans);
}
}
}
return ret;
}
};
class Solution{
public:
vector<int> twoSum(vector<int>& numbers, int target){
int l=0, r=numbers.size()-1;
vector<int> ans(2);
while(l<r){
if(numbers[l]+numbers[r]==target){
ans[0] = l; ans[1] = r; break;
}else if(numbers[l]+numbers[r]<target){
l++;
}else r--;
}
return ans;
}
};