Day 25
題目描述
思路
- 創建一個hashmap
- 從前向后遍歷數組
- 如果存在target-nums[i]在map中,記錄它們兩個的序號返回即可
- 不存在,就將該元素放入map中,存放序號
注意:題目說的是必然存在唯一解
class Solution {public int[] twoSum(int[] nums, int target) {int[]res=new int[2];Map<Integer,Integer>map=new HashMap<>();for(int i=0;i<nums.length;i++){if(map.containsKey(target-nums[i])){res[0]=map.get(target-nums[i]);res[1]=i;break;}else{map.put(nums[i],i);}}return res;}
}
題目描述
思路
這題我并沒有很好的解法,直接Set記錄每次的平方和,如果出現重復且不為1,那么就不能得到結果為1。
class Solution {public boolean isHappy(int n) {Set<Integer> set=new HashSet<>();int s;while(n!=1){s=0;while(n!=0){s=s+(n%10)*(n%10);n=n/10;}if(set.contains(s)){return false;}else{set.add(s);n=s;}}return true;}
}