class Solution {
public boolean isHappy(int n) {
Set<Integer> record = new HashSet<>();
while (n != 1 && !record.contains(n)){
record.add(n);
n = getNumber(n);
}
return n==1;
}
public int getNumber(int n){
int res = 0;
while(n>0){
int temp = n % 10; //这个操作是求取 n 除以 10 的余数。它会返回 n 的个位数字
res += temp *temp;
n = n / 10; //n 除以 10,将得到的商赋值给 n。这样做相当于将 n 的最后一位数字去掉
}
return res;
}
}
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] res = new int[2];
if (nums == null || nums.length == 0){
return res;
}
Map<Integer,Integer> map = new HashMap<>();
for (int i = 0 ; i < nums.length ; i++){
int temp = target - nums[i];
if (map.containsKey(temp)){
res[0] = map.get(temp);
res[1] = i;
break;
}
map.put(nums[i],i);
}
return res;
}
}
class Solution {
public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
Map<Integer,Integer> map = new HashMap<>();
for(int i : nums1){
for(int j : nums2){
int sum = i + j;
map.put(sum, map.getOrDefault(sum,0)+1);
}
}
int res = 0;
for(int i : nums3){
for(int j : nums4){
res += map.getOrDefault(0-(i+j),0);
}
}
return res;
}
}
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
if (ransomNote.length() > magazine.length()){
return false;
}
//定义一个哈希数组
int[] record =new int[26];
//把magazine放到map
for (char i :magazine.toCharArray()){
record[i-'a'] += 1;
}
for (char j :ransomNote.toCharArray()){
record[j-'a']-=1;
}
for (int c : record){
if(c<0){
return false;
}
}
return true;
}
}