parent
7d8d1596e3
commit
81d0b068d6
@ -0,0 +1,20 @@ |
|||||||
|
--- |
||||||
|
HashMap |
||||||
|
--- |
||||||
|
|
||||||
|
#### 目录 |
||||||
|
|
||||||
|
1. 思维导图 |
||||||
|
2. 概述 |
||||||
|
3. 源码分析 |
||||||
|
4. 常见问题 |
||||||
|
5. 参考 |
||||||
|
|
||||||
|
#### 思维导图 |
||||||
|
|
||||||
|
#### 概述 |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### 源码分析 |
||||||
|
|
@ -0,0 +1,127 @@ |
|||||||
|
--- |
||||||
|
异或应用 |
||||||
|
--- |
||||||
|
|
||||||
|
#### 目录 |
||||||
|
|
||||||
|
1. 思维导图 |
||||||
|
2. 概述 |
||||||
|
3. 常见问题解决 |
||||||
|
4. 参考 |
||||||
|
|
||||||
|
#### 思维导图 |
||||||
|
|
||||||
|
![](https://i.loli.net/2019/01/11/5c37f3306e40c.png) |
||||||
|
|
||||||
|
#### 概述 |
||||||
|
|
||||||
|
异或运算就是相同的元素运算结果等于 0,不相同的元素异或等于 1。 |
||||||
|
|
||||||
|
基于此,异或有以下特性: |
||||||
|
|
||||||
|
1. a^a = 0 |
||||||
|
|
||||||
|
相同的数异或为零。 |
||||||
|
|
||||||
|
2. a^0 = a |
||||||
|
|
||||||
|
任何数与零异都为其本身。 |
||||||
|
|
||||||
|
3. a = a ^ b ^ b |
||||||
|
|
||||||
|
#### 常见问题 |
||||||
|
|
||||||
|
##### 1. 不用中间变量交换 a 和 b |
||||||
|
|
||||||
|
```java |
||||||
|
public static void main(String[] args) { |
||||||
|
int a = 2333; |
||||||
|
int b = 1234; |
||||||
|
a = a ^ b; |
||||||
|
b = a ^ b; |
||||||
|
a = a ^ b; |
||||||
|
System.out.println(a + " " + b); |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
##### 2. 一个整形数组,存 1 到 n 的所有整数,但缺少一个数,求这个数? |
||||||
|
|
||||||
|
```java |
||||||
|
public static void main(String[] args) { |
||||||
|
int[] ints = new int[233]; |
||||||
|
for (int i = 0; i < 233; i++) { |
||||||
|
ints[i] = i; |
||||||
|
} |
||||||
|
ints[23] = 0; |
||||||
|
int result = 0; |
||||||
|
for (int i = 0; i < ints.length; i++) { |
||||||
|
result = i ^ result; |
||||||
|
} |
||||||
|
for (int i : ints) { |
||||||
|
result = i ^ result; |
||||||
|
} |
||||||
|
System.out.println(result); |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
##### 3. 一个整形数组除了一个数只出现一次,其他都出现两次,求这个数? |
||||||
|
|
||||||
|
```java |
||||||
|
public static void main(String[] args) { |
||||||
|
int[] ints = new int[]{2, 3, 4, 5, 3, 4, 5, 7, 2, 9, 0, 7, 0}; |
||||||
|
int result = 0; |
||||||
|
for (int i : ints) { |
||||||
|
result = result ^ i; |
||||||
|
} |
||||||
|
System.out.println(result); |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
##### 4. 一个整形数组除了两个数只出现一次,其他都出现两次,求这两个数? |
||||||
|
|
||||||
|
```java |
||||||
|
public static void main(String[] args) { |
||||||
|
int[] ints = new int[]{2, 5, 2, 9, 7, 5, 6, 9}; |
||||||
|
int num = 0; |
||||||
|
for (int i : ints) { |
||||||
|
num = num ^ i; |
||||||
|
} |
||||||
|
ArrayList<Integer> list = new ArrayList<>(); |
||||||
|
for (int i : ints) { |
||||||
|
if (list.contains(num ^ i)) { |
||||||
|
list.remove(Integer.valueOf(num ^ i)); |
||||||
|
} else { |
||||||
|
list.add(num ^ i); |
||||||
|
} |
||||||
|
} |
||||||
|
System.out.println(list.get(0)); |
||||||
|
System.out.println(list.get(1)); |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
##### 5. 一个整形数组除了三个数只出现一次,其他都出现两次,求这三个数? |
||||||
|
|
||||||
|
```java |
||||||
|
public static void main(String[] args) { |
||||||
|
int[] ints = new int[]{2, 5, 2, 9, 7, 5, 6, 9, 8}; |
||||||
|
int num = 0; |
||||||
|
for (int i : ints) { |
||||||
|
num = num ^ i; |
||||||
|
} |
||||||
|
ArrayList<Integer> list = new ArrayList<>(); |
||||||
|
for (int i : ints) { |
||||||
|
if (list.contains(num ^ i)) { |
||||||
|
list.remove(Integer.valueOf(num ^ i)); |
||||||
|
} else { |
||||||
|
list.add(num ^ i); |
||||||
|
} |
||||||
|
} |
||||||
|
System.out.println(list.get(0) ^ num); |
||||||
|
System.out.println(list.get(1) ^ num); |
||||||
|
System.out.println(list.get(2) ^ num); |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
#### 参考 |
||||||
|
|
||||||
|
[异或应用小总结](https://blog.csdn.net/hulamua/article/details/52411446) |
@ -0,0 +1,16 @@ |
|||||||
|
--- |
||||||
|
观察者模式 |
||||||
|
--- |
||||||
|
|
||||||
|
#### 目录 |
||||||
|
|
||||||
|
1. 思维导图 |
||||||
|
2. 概述 |
||||||
|
3. |
||||||
|
|
||||||
|
#### 思维导图 |
||||||
|
|
||||||
|
#### 概述 |
||||||
|
|
||||||
|
观察者模式定义了对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖它的对象都会得到通知并自动更新。它的最重要作用就是解耦,将被观察者和观察者解耦,使得它们之间的依赖性更小。 |
||||||
|
|
After Width: | Height: | Size: 65 KiB |
Loading…
Reference in new issue