class Solution {
public:
int getSum(int n){
int sum = 0;
while(n){
sum += (n%10)*(n%10);
n = n/10;
};
return sum;
}
bool isHappy(int n) {
unordered_set<int> s;
while(1){
int sum = getSum(n);
if(sum==1){
return true;
};
// 如果这个sum曾经出现过,说明已经陷入了无限循环了,立刻return false
if(s.find(sum)!=s.end()){
return false;
};
s.insert(sum);
n = sum;
}
}
};
1. 两数之和
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> map;
int index =0;
for(vector<int>::iterator it =nums.begin();it != nums.end();it++){
int s = target-(*it);
// auto iter = 当我们使用迭代器来遍历 std::map 中的元素时,
// 可以使用 auto 关键字来简化迭代器类型的声明。
unordered_map<int,int>::iterator iter = map.find(s);
if(iter!= map.end()){
// vector返回对象是用{,}
return {iter->second,index};
};
map.insert(pair<int,int>(*it,index));
index++;
};
return {};
};
};