mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-25 02:27:10 +08:00
fix typo
This commit is contained in:
parent
0c61be453d
commit
4a255c9aa3
@ -14,7 +14,7 @@ n<=39
|
||||
**采用迭代法:**
|
||||
|
||||
```java
|
||||
int Fibonacci(int number) {
|
||||
int Fibonacci(int number) {
|
||||
if (number <= 0) {
|
||||
return 0;
|
||||
}
|
||||
@ -28,14 +28,13 @@ n<=39
|
||||
second = third;
|
||||
}
|
||||
return third;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**采用递归:**
|
||||
|
||||
```java
|
||||
public int Fibonacci(int n) {
|
||||
|
||||
public int Fibonacci(int n) {
|
||||
if (n <= 0) {
|
||||
return 0;
|
||||
}
|
||||
@ -44,8 +43,7 @@ n<=39
|
||||
}
|
||||
|
||||
return Fibonacci(n - 2) + Fibonacci(n - 1);
|
||||
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 二 跳台阶问题
|
||||
@ -71,7 +69,7 @@ f(1) = 1, f(2) = 2, f(3) = 3, f(4) = 5, 可以总结出f(n) = f(n-1) + f(n-2)
|
||||
#### **示例代码:**
|
||||
|
||||
```java
|
||||
int jumpFloor(int number) {
|
||||
int jumpFloor(int number) {
|
||||
if (number <= 0) {
|
||||
return 0;
|
||||
}
|
||||
@ -88,7 +86,7 @@ f(1) = 1, f(2) = 2, f(3) = 3, f(4) = 5, 可以总结出f(n) = f(n-1) + f(n-2)
|
||||
second = third;
|
||||
}
|
||||
return third;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 三 变态跳台阶问题
|
||||
@ -113,9 +111,9 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
|
||||
#### **示例代码:**
|
||||
|
||||
```java
|
||||
int JumpFloorII(int number) {
|
||||
int JumpFloorII(int number) {
|
||||
return 1 << --number;//2^(number-1)用位移操作进行,更快
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### **补充:**
|
||||
@ -124,7 +122,7 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
|
||||
|
||||
1. “<<” : **左移运算符**,等同于乘2的n次方
|
||||
2. “>>”: **右移运算符**,等同于除2的n次方
|
||||
3. “>>>” **无符号右移运算符**,不管移动前最高位是0还是1,右移后左侧产生的空位部分都以0来填充。与>>类似。
|
||||
3. “>>>” : **无符号右移运算符**,不管移动前最高位是0还是1,右移后左侧产生的空位部分都以0来填充。与>>类似。
|
||||
例:
|
||||
int a = 16;
|
||||
int b = a << 2;//左移2,等同于16 * 2的2次方,也就是16 * 4
|
||||
@ -147,7 +145,7 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
|
||||
#### **示例代码:**
|
||||
|
||||
```java
|
||||
public boolean Find(int target, int [][] array) {
|
||||
public boolean Find(int target, int [][] array) {
|
||||
//基本思路从左下角开始找,这样速度最快
|
||||
int row = array.length-1;//行
|
||||
int column = 0;//列
|
||||
@ -162,7 +160,7 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 五 替换空格
|
||||
@ -175,17 +173,17 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
|
||||
|
||||
这道题不难,我们可以通过循环判断字符串的字符是否为空格,是的话就利用append()方法添加追加“%20”,否则还是追加原字符。
|
||||
|
||||
或者最简单的方法就是利用: replaceAll(String regex,String replacement)方法了,一行代码就可以解决。
|
||||
或者最简单的方法就是利用:replaceAll(String regex,String replacement)方法了,一行代码就可以解决。
|
||||
|
||||
#### **示例代码:**
|
||||
|
||||
**常规做法:**
|
||||
|
||||
```java
|
||||
public String replaceSpace(StringBuffer str) {
|
||||
StringBuffer out=new StringBuffer();
|
||||
public String replaceSpace(StringBuffer str) {
|
||||
StringBuffer out = new StringBuffer();
|
||||
for (int i = 0; i < str.toString().length(); i++) {
|
||||
char b=str.charAt(i);
|
||||
char b = str.charAt(i);
|
||||
if(String.valueOf(b).equals(" ")){
|
||||
out.append("%20");
|
||||
}else{
|
||||
@ -193,20 +191,19 @@ f(n)=f(n-1)+f(n-2)+...+f(1)
|
||||
}
|
||||
}
|
||||
return out.toString();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**一行代码解决:**
|
||||
|
||||
```java
|
||||
public String replaceSpace(StringBuffer str) {
|
||||
public String replaceSpace(StringBuffer str) {
|
||||
//return str.toString().replaceAll(" ", "%20");
|
||||
//public String replaceAll(String regex,String replacement)
|
||||
//用给定的替换替换与给定的regular expression匹配的此字符串的每个子字符串。
|
||||
//\ 转义字符. 如果你要使用 "\" 本身, 则应该使用 "\\". String类型中的空格用“\s”表示,所以我这里猜测"\\s"就是代表空格的意思
|
||||
return str.toString().replaceAll("\\s", "%20");
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
### 六 数值的整数次方
|
||||
@ -279,8 +276,8 @@ public class Solution {
|
||||
当然这一题也可以采用笨方法:累乘。不过这种方法的时间复杂度为O(n),这样没有前一种方法效率高。
|
||||
|
||||
```java
|
||||
// 使用累乘
|
||||
public double powerAnother(double base, int exponent) {
|
||||
// 使用累乘
|
||||
public double powerAnother(double base, int exponent) {
|
||||
double result = 1.0;
|
||||
for (int i = 0; i < Math.abs(exponent); i++) {
|
||||
result *= base;
|
||||
@ -289,7 +286,7 @@ public class Solution {
|
||||
return result;
|
||||
else
|
||||
return 1 / result;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 七 调整数组顺序使奇数位于偶数前面
|
||||
@ -434,7 +431,7 @@ public class ListNode {
|
||||
}
|
||||
}*/
|
||||
public class Solution {
|
||||
public ListNode ReverseList(ListNode head) {
|
||||
public ListNode ReverseList(ListNode head) {
|
||||
ListNode next = null;
|
||||
ListNode pre = null;
|
||||
while (head != null) {
|
||||
@ -448,8 +445,7 @@ public ListNode ReverseList(ListNode head) {
|
||||
head = next;
|
||||
}
|
||||
return pre;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@ -551,7 +547,7 @@ public ListNode Merge(ListNode list1,ListNode list2) {
|
||||
list2.next = Merge(list1, list2.next);
|
||||
return list2;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 十一 用两个栈实现队列
|
||||
@ -642,8 +638,6 @@ https://www.nowcoder.com/questionTerminal/d77d11405cc7470d82554cb392585106
|
||||
….
|
||||
依次执行,最后辅助栈为空。如果不为空说明弹出序列不是该栈的弹出顺序。
|
||||
|
||||
|
||||
|
||||
#### **考察内容:**
|
||||
|
||||
栈
|
||||
|
Loading…
x
Reference in New Issue
Block a user