今天开始刷刷力扣的题。
先从简单的开始把,它上面有各个模块的题目,先从初级算法开始刷刷看。
数组部分:
1、删除排序数组中的重复项
别忘记边界条件的判断
双指针,比较常用的判断数组之间元素关系的思路
2、判断是否有重复元素
使用先排序 Arrays.sort(),再逐个判断
使用Set集合:将其挨个放入一个HashSet中
public boolean containsDuplicate(int[] nums) {
Set<integer> set = new HashSet<>();
for (int num : nums) {
//因为集合set中不能有重复的元素,如果有重复的
//元素添加,就会添加失败
if (!set.add(num))
return true;
}
return false;
}
3、只出现一次的数字
使用异或运算,将所有值进行异或
异或运算,相异为真,相同为假,所以 a^a = 0 ;0^a = a
因为异或运算 满***换律 a^b^a = a^a^b = b 所以数组经过异或运算,单独的值就剩下了</integer>