1、整型数组中除了一个数之外其他数都是成双出现,找出这个单独的数。
将数组中的所有数进行异或,则最后的结果就是那个单独的数,因为偶数个相同的数异或结果为0.
异或还可以进行交换两个整数的值,而不用引用第三个数。
a = 9;
b = 11;
a=a^b; 1001^1011=0010
b=b^a; 1011^0010=1001
a=a^b; 0010^1001=1011
a = 11;
b = 9;
2. 判断链表中是否有环。
方法一:使用set集合,将链表中的每一个节点进行判断,如果当前的节点包含在set集合中,则该链表是有环的,如果没包含的set 集合中,则将当前节点添加到set集合中,在对下一个节点进行以上判断,依次循环,循环的结束条件是链表指向null。
方法二:使用两个标签slow,fast,slow指向表头,fast指向表头的下一个,slow每次只向后移动一个节点,fast每次向后移动两个节点,如果slow与fast能相等,则链表是有环的,否则是无环的。
3. 在MinStack中用java写的话有个需要注意的地方就是由于Stack中的元素用了泛型,而泛型不支持基本类型,所以需要基本类型的包装类。而包装类不同于基本类型的是包装类是引用,要比较相等不能简单使用==,要使用equals方法。