1、唯一元素的和
class Solution {
public:
int sumOfUnique(vector<int>& nums) {
unordered_map<int,int>hash;
for(int k:nums){
hash[k]++;
}
int num=0;
for(int i=0;i<nums.size();++i){
if(hash[nums[i]]==1){
num+=nums[i];
}
}
return num;
}
};
class Solution {
public:
int firstUniqChar(string s) {
unordered_map<char,int>hash;
for(char ch:s){
hash[ch]++;
}
for(int i=0;i<s.size();++i){
if(hash[s[i]]==1){
return i;
}
}
return -1;
}
};
class Solution {
public:
bool areOccurrencesEqual(string s) {
unordered_map<char,int>hash;
for(char ch:s){
hash[ch]++;
}
int c=hash[s[0]];
for(auto it:hash){
if(it.second!=c){
return false;
}
}
return true;
}
};
int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){
int*ret=(int*)malloc(sizeof(int)*numsSize);
*returnSize=0;
memset(ret,0,numsSize*sizeof(int));
for(int i=0;i<numsSize;i++)
{
ret[nums[i]-1]++;
}
for(int i=0;i<numsSize;i++)
{
if(ret[i]==0)
{
ret[(*returnSize)++]=i+1;
}
}
return ret;
}
5、好数对的数目
int numIdenticalPairs(int* nums, int numsSize){
int i,j,ans=0;
for(i=0;i<numsSize;++i){
for(j=i+1;j<numsSize;++j){
if(nums[i]==nums[j]){
++ans;
}
}
}
return ans;
}
6、大餐计数
int countPairs(int* deliciousness, int deliciousnessSize){
int ans=0,other;
int i,sum=0;
int *cnt=(int *)malloc(sizeof(int )*((1<<21)+1));
memset(cnt,0,sizeof(int )*((1<<21)+1));
for(i=0;i<deliciousnessSize;++i){
for(sum=1;sum<=(1<<21);sum*=2){
other=sum-deliciousness[i];
if(other<0){
continue;
}
ans+=cnt[other];
ans%=1000000007;
}
++cnt[deliciousness[i]];
}
return ans;
}