202. 快乐数
这总感觉就是找规律的题!
题目:


题解:
java
class Solution {
public boolean isHappy(int n) {
//这里要多用几个数去试,就能发现规律了
//规律就是如果不能循环得到1的数一定会进行循环,进入死循环
//只需要将每次都得到的数放入map中进行纪律,一旦得到的数出现过就return false
//如果得到1就直接返回true
int x=n;
Map<Integer,Integer> map = new HashMap<>();
while(true) {
map.put(x,1);
if(x==1) {
return true;
}
int sum=0;
while(x>0) {
int g = x%10;
sum+=g*g;
x/=10;
}
x=sum;
if(map.containsKey(x)) {
break;
}
}
return false;
}
}
219. 存在重复元素Ⅱ
不是这题跟1. 两数之和做法几乎一模一样,秒了,很快就写完了,到了这一章才发现map这么好用!!!
题目:

题解:
java
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
Map<Integer,Integer> map=new HashMap<>();
for(int i=0;i<nums.length;i++) {
if(map.containsKey(nums[i])&&Math.abs(map.get(nums[i])-i)<=k) {
return true;
}
map.put(nums[i],i);
}
return false;
}
}
