数组、Set、Map
如果数据量小------------数组
如果数据量大------------Set
如果有Key、value------------Map
思路:
class Solution {
public boolean isAnagram(String s, String t) {
int[] ints=new int[26];
for(int i=0;i<s.length();i++){
ints[s.charAt(i)-'a']++;
}
for(int i=0;i<t.length();i++){
ints[t.charAt(i)-'a']--;
}
for(int i=0;i<ints.length;i++){
if(ints[i]!=0) return false;
}
return true;
}
}
思路:
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set=new HashSet<>();
Set<Integer> set2=new HashSet<>();
int[] ints=new int[Math.max(nums2.length,nums1.length)];
for(int i=0;i<nums1.length;i++){
set.add(nums1[i]);
}
for(int i=0;i<nums2.length;i++){
if(set.contains(nums2[i])){
set2.add(nums2[i]);
}
}
return set2.stream().mapToInt(x -> x).toArray();
}
}
思路:

class Solution {
public boolean isHappy(int n) {
Set<Integer> set=new HashSet<>();
while(n!=1&&!set.contains(n)){
set.add(n);
n=getNum(n);
}
return n==1;
}
public int getNum(int n){
int res=0;
while(n>0){
res+=(n%10)*(n%10);
n=n/10;
}
System.out.println(res);
return res;
}
}
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer,Integer> map=new HashMap<>();
for(int i=0;i<nums.length;i++){
int num=target-nums[i];
if(!map.containsKey(num)){
map.put(nums[i],i);
}else
return new int[]{i,map.get(num)};
}
return new int[0];
}
}