Skip to content

Commit 4a255c9

Browse files
committed
fix typo
1 parent 0c61be4 commit 4a255c9

File tree

1 file changed

+117
-123
lines changed

1 file changed

+117
-123
lines changed

docs/dataStructures-algorithms/剑指offer部分编程题.md

Lines changed: 117 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -14,38 +14,36 @@ n<=39
1414
**采用迭代法:**
1515

1616
```java
17-
int Fibonacci(int number) {
18-
if (number <= 0) {
19-
return 0;
20-
}
21-
if (number == 1 || number == 2) {
22-
return 1;
23-
}
24-
int first = 1, second = 1, third = 0;
25-
for (int i = 3; i <= number; i++) {
26-
third = first + second;
27-
first = second;
28-
second = third;
29-
}
30-
return third;
31-
}
17+
int Fibonacci(int number) {
18+
if (number <= 0) {
19+
return 0;
20+
}
21+
if (number == 1 || number == 2) {
22+
return 1;
23+
}
24+
int first = 1, second = 1, third = 0;
25+
for (int i = 3; i <= number; i++) {
26+
third = first + second;
27+
first = second;
28+
second = third;
29+
}
30+
return third;
31+
}
3232
```
3333

3434
**采用递归:**
3535

3636
```java
37-
public int Fibonacci(int n) {
38-
39-
if (n <= 0) {
40-
return 0;
41-
}
42-
if (n == 1||n==2) {
43-
return 1;
44-
}
45-
46-
return Fibonacci(n - 2) + Fibonacci(n - 1);
47-
48-
}
37+
public int Fibonacci(int n) {
38+
if (n <= 0) {
39+
return 0;
40+
}
41+
if (n == 1||n==2) {
42+
return 1;
43+
}
44+
45+
return Fibonacci(n - 2) + Fibonacci(n - 1);
46+
}
4947
```
5048

5149
### 二 跳台阶问题
@@ -71,24 +69,24 @@ f(1) = 1, f(2) = 2, f(3) = 3, f(4) = 5, 可以总结出f(n) = f(n-1) + f(n-2)
7169
#### **示例代码:**
7270

7371
```java
74-
int jumpFloor(int number) {
75-
if (number <= 0) {
76-
return 0;
77-
}
78-
if (number == 1) {
79-
return 1;
80-
}
81-
if (number == 2) {
82-
return 2;
83-
}
84-
int first = 1, second = 2, third = 0;
85-
for (int i = 3; i <= number; i++) {
86-
third = first + second;
87-
first = second;
88-
second = third;
89-
}
90-
return third;
91-
}
72+
int jumpFloor(int number) {
73+
if (number <= 0) {
74+
return 0;
75+
}
76+
if (number == 1) {
77+
return 1;
78+
}
79+
if (number == 2) {
80+
return 2;
81+
}
82+
int first = 1, second = 2, third = 0;
83+
for (int i = 3; i <= number; i++) {
84+
third = first + second;
85+
first = second;
86+
second = third;
87+
}
88+
return third;
89+
}
9290
```
9391

9492
### 三 变态跳台阶问题
@@ -113,9 +111,9 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
113111
#### **示例代码:**
114112

115113
```java
116-
int JumpFloorII(int number) {
117-
return 1 << --number;//2^(number-1)用位移操作进行,更快
118-
}
114+
int JumpFloorII(int number) {
115+
return 1 << --number;//2^(number-1)用位移操作进行,更快
116+
}
119117
```
120118

121119
#### **补充:**
@@ -124,7 +122,7 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
124122

125123
1. “<<” : **左移运算符**,等同于乘2的n次方
126124
2. “>>”: **右移运算符**,等同于除2的n次方
127-
3. “>>>” **无符号右移运算符**,不管移动前最高位是0还是1,右移后左侧产生的空位部分都以0来填充。与>>类似。
125+
3. “>>>” : **无符号右移运算符**,不管移动前最高位是0还是1,右移后左侧产生的空位部分都以0来填充。与>>类似。
128126
例:
129127
int a = 16;
130128
int b = a << 2;//左移2,等同于16 * 2的2次方,也就是16 * 4
@@ -147,22 +145,22 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
147145
#### **示例代码:**
148146

149147
```java
150-
public boolean Find(int target, int [][] array) {
151-
//基本思路从左下角开始找,这样速度最快
152-
int row = array.length-1;//
153-
int column = 0;//
154-
//当行数大于0,当前列数小于总列数时循环条件成立
155-
while((row >= 0)&& (column< array[0].length)){
156-
if(array[row][column] > target){
157-
row--;
158-
}else if(array[row][column] < target){
159-
column++;
160-
}else{
161-
return true;
162-
}
148+
public boolean Find(int target, int [][] array) {
149+
//基本思路从左下角开始找,这样速度最快
150+
int row = array.length-1;//
151+
int column = 0;//
152+
//当行数大于0,当前列数小于总列数时循环条件成立
153+
while((row >= 0)&& (column< array[0].length)){
154+
if(array[row][column] > target){
155+
row--;
156+
}else if(array[row][column] < target){
157+
column++;
158+
}else{
159+
return true;
163160
}
164-
return false;
165161
}
162+
return false;
163+
}
166164
```
167165

168166
### 五 替换空格
@@ -175,38 +173,37 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
175173

176174
这道题不难,我们可以通过循环判断字符串的字符是否为空格,是的话就利用append()方法添加追加“%20”,否则还是追加原字符。
177175

178-
或者最简单的方法就是利用: replaceAll(String regex,String replacement)方法了,一行代码就可以解决。
176+
或者最简单的方法就是利用:replaceAll(String regex,String replacement)方法了,一行代码就可以解决。
179177

180178
#### **示例代码:**
181179

182180
**常规做法:**
183181

184182
```java
185-
public String replaceSpace(StringBuffer str) {
186-
StringBuffer out=new StringBuffer();
187-
for (int i = 0; i < str.toString().length(); i++) {
188-
char b=str.charAt(i);
189-
if(String.valueOf(b).equals(" ")){
190-
out.append("%20");
191-
}else{
192-
out.append(b);
193-
}
183+
public String replaceSpace(StringBuffer str) {
184+
StringBuffer out = new StringBuffer();
185+
for (int i = 0; i < str.toString().length(); i++) {
186+
char b = str.charAt(i);
187+
if(String.valueOf(b).equals(" ")){
188+
out.append("%20");
189+
}else{
190+
out.append(b);
194191
}
195-
return out.toString();
196192
}
193+
return out.toString();
194+
}
197195
```
198196

199197
**一行代码解决:**
200198

201199
```java
202-
public String replaceSpace(StringBuffer str) {
203-
//return str.toString().replaceAll(" ", "%20");
204-
//public String replaceAll(String regex,String replacement)
205-
//用给定的替换替换与给定的regular expression匹配的此字符串的每个子字符串。
206-
//\ 转义字符. 如果你要使用 "\" 本身, 则应该使用 "\\". String类型中的空格用“\s”表示,所以我这里猜测"\\s"就是代表空格的意思
207-
return str.toString().replaceAll("\\s", "%20");
208-
}
209-
200+
public String replaceSpace(StringBuffer str) {
201+
//return str.toString().replaceAll(" ", "%20");
202+
//public String replaceAll(String regex,String replacement)
203+
//用给定的替换替换与给定的regular expression匹配的此字符串的每个子字符串。
204+
//\ 转义字符. 如果你要使用 "\" 本身, 则应该使用 "\\". String类型中的空格用“\s”表示,所以我这里猜测"\\s"就是代表空格的意思
205+
return str.toString().replaceAll("\\s", "%20");
206+
}
210207
```
211208

212209
### 六 数值的整数次方
@@ -279,17 +276,17 @@ public class Solution {
279276
当然这一题也可以采用笨方法:累乘。不过这种方法的时间复杂度为O(n),这样没有前一种方法效率高。
280277

281278
```java
282-
// 使用累乘
283-
public double powerAnother(double base, int exponent) {
284-
double result = 1.0;
285-
for (int i = 0; i < Math.abs(exponent); i++) {
286-
result *= base;
287-
}
288-
if (exponent >= 0)
289-
return result;
290-
else
291-
return 1 / result;
279+
// 使用累乘
280+
public double powerAnother(double base, int exponent) {
281+
double result = 1.0;
282+
for (int i = 0; i < Math.abs(exponent); i++) {
283+
result *= base;
292284
}
285+
if (exponent >= 0)
286+
return result;
287+
else
288+
return 1 / result;
289+
}
293290
```
294291

295292
### 七 调整数组顺序使奇数位于偶数前面
@@ -434,22 +431,21 @@ public class ListNode {
434431
}
435432
}*/
436433
public class Solution {
437-
public ListNode ReverseList(ListNode head) {
438-
ListNode next = null;
439-
ListNode pre = null;
440-
while (head != null) {
441-
//保存要反转到头来的那个节点
442-
next = head.next;
443-
//要反转的那个节点指向已经反转的上一个节点
444-
head.next = pre;
445-
//上一个已经反转到头部的节点
446-
pre = head;
447-
//一直向链表尾走
448-
head = next;
434+
public ListNode ReverseList(ListNode head) {
435+
ListNode next = null;
436+
ListNode pre = null;
437+
while (head != null) {
438+
//保存要反转到头来的那个节点
439+
next = head.next;
440+
//要反转的那个节点指向已经反转的上一个节点
441+
head.next = pre;
442+
//上一个已经反转到头部的节点
443+
pre = head;
444+
//一直向链表尾走
445+
head = next;
446+
}
447+
return pre;
449448
}
450-
return pre;
451-
}
452-
453449
}
454450
```
455451

@@ -538,20 +534,20 @@ public class Solution {
538534

539535
```java
540536
public ListNode Merge(ListNode list1,ListNode list2) {
541-
if(list1 == null){
542-
return list2;
543-
}
544-
if(list2 == null){
545-
return list1;
546-
}
547-
if(list1.val <= list2.val){
548-
list1.next = Merge(list1.next, list2);
549-
return list1;
550-
}else{
551-
list2.next = Merge(list1, list2.next);
552-
return list2;
553-
}
554-
}
537+
if(list1 == null){
538+
return list2;
539+
}
540+
if(list2 == null){
541+
return list1;
542+
}
543+
if(list1.val <= list2.val){
544+
list1.next = Merge(list1.next, list2);
545+
return list1;
546+
}else{
547+
list2.next = Merge(list1, list2.next);
548+
return list2;
549+
}
550+
}
555551
```
556552

557553
### 十一 用两个栈实现队列
@@ -642,8 +638,6 @@ https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106
642638
….
643639
依次执行,最后辅助栈为空。如果不为空说明弹出序列不是该栈的弹出顺序。
644640

645-
646-
647641
#### **考察内容:**
648642

649643

0 commit comments

Comments
 (0)