<table class="javascript">
<tr class="li1"><td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141 ,,,],和为的两个数字下标为(也就是),这里假设在数组中这样的组合只存在一个,请问如何找出这一组数据。 看到题的第一眼思路就是两个,这样的思路应该非常普通,实现起来大致如下: twoSum nums target judge_i_j iinums.i jijnums.j numsinumsjtarget _ii _jj judge judge _i_j 不过看到别人的答案,觉得很巧妙,它是利用一个map只遍历一遍就找到正确了,利用的是一种逆向思维,例如,目标和为,那么我们知道目标和当前的数字,我们就可以知道另外一半的数字,如当前数字为,,我们就知道另外一半的数字肯定为,我们把放入临时的map中,判断以后数字是否有的(在map中找,因为是key因此很快),如果找到就搜索结束了。 twoSum nums target hash len nums. i i len i numsi hash hashnumsi i hashtarget numsi i 假如现在有一个数组,然后现在要你把所有的全部移到数组的最后,怎么实现? 最简单的办法就是将数组变成两部分,一部分没有,一部分全部都是,然后将他们拼接起来: arr arr_leftarr.ni n arr_rightarr.ni n _arr.arr_leftarr_right console._arr 上面虽然可以实现,但是比较麻烦,现在看一个边遍历边修改的方法,不是很难,但是平时可能也很难想到: arr