File tree 17 files changed +276
-134
lines changed
0000-0099/0070.Climbing Stairs
17 files changed +276
-134
lines changed Original file line number Diff line number Diff line change @@ -64,6 +64,23 @@ class Solution {
64
64
}
65
65
```
66
66
67
+ ### ** C++**
68
+
69
+ ``` cpp
70
+ class Solution {
71
+ public:
72
+ int fib(int n) {
73
+ int a = 0, b = 1;
74
+ for (int i = 0; i < n; ++i) {
75
+ int c = (a + b) % 1000000007;
76
+ a = b;
77
+ b = c;
78
+ }
79
+ return a;
80
+ }
81
+ };
82
+ ```
83
+
67
84
### **JavaScript**
68
85
69
86
```js
@@ -72,32 +89,26 @@ class Solution {
72
89
* @return {number}
73
90
*/
74
91
var fib = function (n) {
75
- if (! n) return 0 ;
76
- let pre = 0 ;
77
- let cur = 1 ;
78
- for (let i = 2 ; i <= n; i++ ) {
79
- let c = (pre + cur) % (1e9 + 7 );
80
- pre = cur;
81
- cur = c;
92
+ let a = 0,
93
+ b = 1;
94
+ for (let i = 0; i < n; ++i) {
95
+ const c = (a + b) % (1e9 + 7);
96
+ a = b;
97
+ b = c;
82
98
}
83
- return cur ;
99
+ return a ;
84
100
};
85
101
```
86
102
87
103
### ** Go**
88
104
89
105
``` go
90
106
func fib (n int ) int {
91
- if n < 2 {
92
- return n
93
- }
94
- a := make ([]int ,n+1 )
95
- a[0 ]=0
96
- a[1 ]=1
97
- for i := 2 ; i < n+1 ; i++ {
98
- a[i] = (a[i-1 ]+ a[i-2 ])%1000000007
107
+ a , b := 0 , 1
108
+ for i := 0 ; i < n; i++ {
109
+ a, b = b, (a + b) % 1000000007
99
110
}
100
- return a[n]
111
+ return a
101
112
}
102
113
```
103
114
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ int fib (int n) {
4
+ int a = 0 , b = 1 ;
5
+ for (int i = 0 ; i < n; ++i) {
6
+ int c = (a + b) % 1000000007 ;
7
+ a = b;
8
+ b = c;
9
+ }
10
+ return a;
11
+ }
12
+ };
Original file line number Diff line number Diff line change 1
1
func fib (n int ) int {
2
- if n < 2 {
3
- return n
2
+ a , b := 0 , 1
3
+ for i := 0 ; i < n ; i ++ {
4
+ a , b = b , (a + b ) % 1000000007
4
5
}
5
- a := make ([]int ,n + 1 )
6
- a [0 ]= 0
7
- a [1 ]= 1
8
- for i := 2 ; i < n + 1 ; i ++ {
9
- a [i ] = (a [i - 1 ]+ a [i - 2 ])% 1000000007
10
- }
11
- return a [n ]
6
+ return a
12
7
}
Original file line number Diff line number Diff line change 3
3
* @return {number }
4
4
*/
5
5
var fib = function ( n ) {
6
- if ( ! n ) return 0 ;
7
- let pre = 0 ;
8
- let cur = 1 ;
9
- for ( let i = 2 ; i <= n ; i ++ ) {
10
- let c = ( pre + cur ) % ( 1e9 + 7 ) ;
11
- pre = cur ;
12
- cur = c ;
6
+ let a = 0 ,
7
+ b = 1 ;
8
+ for ( let i = 0 ; i < n ; ++ i ) {
9
+ const c = ( a + b ) % ( 1e9 + 7 ) ;
10
+ a = b ;
11
+ b = c ;
13
12
}
14
- return cur ;
13
+ return a ;
15
14
} ;
Original file line number Diff line number Diff line change @@ -48,15 +48,32 @@ class Solution {
48
48
public int numWays (int n ) {
49
49
int a = 0 , b = 1 ;
50
50
for (int i = 0 ; i < n; ++ i) {
51
- int s = (a + b) % 1000000007 ;
51
+ int c = (a + b) % 1000000007 ;
52
52
a = b;
53
- b = s ;
53
+ b = c ;
54
54
}
55
55
return b;
56
56
}
57
57
}
58
58
```
59
59
60
+ ### ** C++**
61
+
62
+ ``` cpp
63
+ class Solution {
64
+ public:
65
+ int numWays(int n) {
66
+ int a = 0, b = 1;
67
+ for (int i = 0; i < n; ++i) {
68
+ int c = (a + b) % 1000000007;
69
+ a = b;
70
+ b = c;
71
+ }
72
+ return b;
73
+ }
74
+ };
75
+ ```
76
+
60
77
### **JavaScript**
61
78
62
79
```js
@@ -65,35 +82,26 @@ class Solution {
65
82
* @return {number}
66
83
*/
67
84
var numWays = function (n) {
68
- if (! n) return 1 ;
69
- let pre = 1 ;
70
- let cur = 1 ;
71
- for (let i = 2 ; i <= n; i++ ) {
72
- let c = (pre + cur) % (1e9 + 7 );
73
- pre = cur;
74
- cur = c;
85
+ let a = 0,
86
+ b = 1;
87
+ for (let i = 0; i < n; ++i) {
88
+ const c = (a + b) % (1e9 + 7);
89
+ a = b;
90
+ b = c;
75
91
}
76
- return cur ;
92
+ return b ;
77
93
};
78
94
```
79
95
80
96
### ** Go**
81
97
82
98
``` go
83
99
func numWays (n int ) int {
84
- if n == 0 {
85
- return 1
86
- }
87
- if n <= 2 {
88
- return n
89
- }
90
- a := make ([]int , n)
91
- a[0 ] = 1
92
- a[1 ] = 2
93
- for i := 2 ; i < n; i++ {
94
- a[i] = (a[i-1 ] + a[i-2 ]) % 1000000007
95
- }
96
- return a[n-1 ]
100
+ a , b := 0 , 1
101
+ for i := 0 ; i < n; i++ {
102
+ a, b = b, (a + b) % 1000000007
103
+ }
104
+ return b
97
105
}
98
106
```
99
107
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ int numWays (int n) {
4
+ int a = 0 , b = 1 ;
5
+ for (int i = 0 ; i < n; ++i) {
6
+ int c = (a + b) % 1000000007 ;
7
+ a = b;
8
+ b = c;
9
+ }
10
+ return b;
11
+ }
12
+ };
Original file line number Diff line number Diff line change 1
1
func numWays (n int ) int {
2
- if n == 0 {
3
- return 1
4
- }
5
- if n <= 2 {
6
- return n
7
- }
8
- a := make ([]int , n )
9
- a [0 ] = 1
10
- a [1 ] = 2
11
- for i := 2 ; i < n ; i ++ {
12
- a [i ] = (a [i - 1 ] + a [i - 2 ]) % 1000000007
13
- }
14
- return a [n - 1 ]
2
+ a , b := 0 , 1
3
+ for i := 0 ; i < n ; i ++ {
4
+ a , b = b , (a + b ) % 1000000007
5
+ }
6
+ return b
15
7
}
Original file line number Diff line number Diff line change @@ -2,9 +2,9 @@ class Solution {
2
2
public int numWays (int n ) {
3
3
int a = 0 , b = 1 ;
4
4
for (int i = 0 ; i < n ; ++i ) {
5
- int s = (a + b ) % 1000000007 ;
5
+ int c = (a + b ) % 1000000007 ;
6
6
a = b ;
7
- b = s ;
7
+ b = c ;
8
8
}
9
9
return b ;
10
10
}
Original file line number Diff line number Diff line change 3
3
* @return {number }
4
4
*/
5
5
var numWays = function ( n ) {
6
- if ( ! n ) return 1 ;
7
- let pre = 1 ;
8
- let cur = 1 ;
9
- for ( let i = 2 ; i <= n ; i ++ ) {
10
- let c = ( pre + cur ) % ( 1e9 + 7 ) ;
11
- pre = cur ;
12
- cur = c ;
6
+ let a = 0 ,
7
+ b = 1 ;
8
+ for ( let i = 0 ; i < n ; ++ i ) {
9
+ const c = ( a + b ) % ( 1e9 + 7 ) ;
10
+ a = b ;
11
+ b = c ;
13
12
}
14
- return cur ;
13
+ return b ;
15
14
} ;
Original file line number Diff line number Diff line change 33
33
34
34
<!-- 这里可写通用的实现逻辑 -->
35
35
36
+ 想上第 ` n ` 级台阶,可从第 ` n-1 ` 级台阶爬一级上去,也可从第 ` n-2 ` 级台阶爬两级上去,即:` f(n) = f(n-1) + f(n-2) ` 。递推求解即可。
37
+
36
38
<!-- tabs:start -->
37
39
38
40
### ** Python3**
39
41
40
42
<!-- 这里可写当前语言的特殊实现逻辑 -->
41
43
42
44
``` python
43
-
45
+ class Solution :
46
+ def climbStairs (self , n : int ) -> int :
47
+ a, b = 0 , 1
48
+ for i in range (n):
49
+ a, b = b, a + b
50
+ return b
44
51
```
45
52
46
53
### ** Java**
47
54
48
55
<!-- 这里可写当前语言的特殊实现逻辑 -->
49
56
50
57
``` java
58
+ class Solution {
59
+ public int climbStairs (int n ) {
60
+ int a = 0 , b = 1 ;
61
+ for (int i = 0 ; i < n; ++ i) {
62
+ int c = a + b;
63
+ a = b;
64
+ b = c;
65
+ }
66
+ return b;
67
+ }
68
+ }
69
+ ```
70
+
71
+ ### ** C++**
72
+
73
+ ``` cpp
74
+ class Solution {
75
+ public:
76
+ int climbStairs(int n) {
77
+ int a = 0, b = 1;
78
+ for (int i = 0; i < n; ++i) {
79
+ int c = a + b;
80
+ a = b;
81
+ b = c;
82
+ }
83
+ return b;
84
+ }
85
+ };
86
+ ```
87
+
88
+ ### **JavaScript**
89
+
90
+ ```js
91
+ /**
92
+ * @param {number} n
93
+ * @return {number}
94
+ */
95
+ var climbStairs = function (n) {
96
+ let a = 0,
97
+ b = 1;
98
+ for (let i = 0; i < n; ++i) {
99
+ const c = a + b;
100
+ a = b;
101
+ b = c;
102
+ }
103
+ return b;
104
+ };
105
+ ```
106
+
107
+ ### ** Go**
51
108
109
+ ``` go
110
+ func climbStairs (n int ) int {
111
+ a , b := 0 , 1
112
+ for i := 0 ; i < n; i++ {
113
+ a, b = b, a + b
114
+ }
115
+ return b
116
+ }
52
117
```
53
118
54
119
### ** ...**
You can’t perform that action at this time.
0 commit comments