242.有效的字母异位词
题目:
class Solution {
public boolean isAnagram(String s, String t) {
int hash[]=new int[26];
for (int i=0;i<s.length();i++){
hash[s.charAt(i)-'a']++;
}
for (int i=0;i<t.length();i++){
hash[t.charAt(i)-'a']--;
}
for (int i=0;i<26;i++){
if (hash[i]!=0)
return false;
}
return true;
}
}
349. 两个数组的交集
题目:
set解决:
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
if (nums1==null||nums1.length==0||nums2==null||nums2.length==0)
return new int[0];
Set<Integer> set1=new HashSet<>();
Set<Integer> reSet=new HashSet<>();
for (int i:nums1){
set1.add(i);
}
for (int i:nums2){
if (set1.contains(i)){
reSet.add(i);
}
}
return reSet.stream().mapToInt(x->x).toArray();
}
}
reSet.stream().mapToInt(x->x).toArray():
stream流
202. 快乐数
题目:
class Solution {
public boolean isHappy(int n) {
Set<Integer> record=new HashSet<>();
while (n!=1&&!record.contains(n)){
record.add(n);
n=getNextNumber(n);
}
return n==1;
}
private int getNextNumber(int n){
int num=0;
while (n>0){
int temp =n%10;
num+=temp*temp;
n=n/10;
}
return num;
}
}
1. 两数之和
题目:
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[1]=i;
res[0]=map.get(temp);
break;
}
map.put(nums[i],i);
}
return res;
}
}