1、有效的正方形
public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) {
if (Arrays.equals(p1, p2)||
Arrays.equals(p1,p3)||
Arrays.equals(p1,p4)||
Arrays.equals(p2,p3)||
Arrays.equals(p2,p4)||
Arrays.equals(p3,p4)) return false;
Map<Integer,Integer> map=new HashMap<>();
isContains(map,p1,p2);
isContains(map,p1,p3);
isContains(map,p1,p4);
isContains(map,p2,p3);
isContains(map,p2,p4);
isContains(map,p3,p4);
return map.size() == 2;
}
private static void isContains(Map<Integer,Integer> map,int[] s1,int[] s2){
int temp1=s1[0]-s2[0];
int temp2=s1[1]-s2[1];
int val=temp1*temp1+temp2*temp2;
if (map.containsKey(val)) {
int count = map.get(val);
count+=1;
}else {
map.put(val,1);
}
}
2、重复 N 次的元素
public int repeatedNTimes(int[] A) {
List<Integer> list=new ArrayList<>();
for (int j : A) {
if (!list.contains(j)) list.add(j);
else return j;
}
return 0;
}