leetcode 242 异位词
public static boolean isAnagram(String s,String t){
if(s.length()!=t.length()) return false;
int[] arr = new int[26];
//长度固定,利用了数组
for (char c:s.toCharArray()) {
arr[c-'a']++;
}
for (char c:t.toCharArray()) {
arr[c-'a']--;
}
for (char c:s.toCharArray()) {
if(arr[c-'a']!=0) return false;
}
return true;
}
leetcode 数组交集
public static int[] intersection(int[] num1,int[] num2){
// 用set的特性
HashSet<Integer> integers1 = new HashSet<>();
//遍历数组1
for (int i = 0; i < num1.length; i++) {
integers1.add(num1[i]);
}
HashSet<Integer> result = new HashSet<>();
//遍历数组2,进而得到结果数组result
for (int num:num2 ) {
if(integers1.contains(num)){
result.add(num);
}
}
return result.stream().mapToInt(x->x).toArray();
}
leetcode 202 快乐数
public static boolean isHappy(int n){
HashSet<Integer> set = new HashSet<>();
//因为非快乐数会重复出现,才能这么爽的用set
while(!set.contains(n)) {
set.add(n);
n = getSum(n);
if(n==1)
return true;
}
return false;
}
public static int getSum(int n){
//各位置数字求平方和
int sum =0;
while(n!=0){
sum += (n%10) * (n%10);
n = n/10;
}
return sum;
}
leetcode 01 两数之和
public static int[] twoSum(int[]nums, int target){
HashMap<Integer, Integer> ha = new HashMap<>();
for(int i=0;i<nums.length;i++){
int tmp = target-nums[i];
ha.put(tmp,i);//组织map
}
int[] res=new int[2];
for (int i=0;i<nums.length;i++){
if(ha.containsKey(nums[i]) && ha.get(nums[i])!=i){
res[0]=i;
res[1]=ha.get(nums[i]);
break;
}
}
return res;
}