Skip to content

Commit 346fb3e

Browse files
authored
Merge pull request #272 from hzliangbin/master
feat: add Golang solution for lcof problem 10-11
2 parents ec51232 + c09abd7 commit 346fb3e

File tree

6 files changed

+114
-0
lines changed

6 files changed

+114
-0
lines changed

lcof/面试题10- I. 斐波那契数列/README.md

+24
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,31 @@ var fib = function(n) {
7777
};
7878
```
7979

80+
81+
82+
### Go
83+
84+
```go
85+
func fib(n int) int {
86+
if n < 2 {
87+
return n
88+
}
89+
a := make([]int,n+1)
90+
a[0]=0
91+
a[1]=1
92+
for i := 2; i < n+1; i++ {
93+
a[i] = (a[i-1]+ a[i-2])%1000000007
94+
}
95+
return a[n]
96+
}
97+
```
98+
99+
100+
101+
102+
80103
### ...
104+
81105
```
82106
83107
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
func fib(n int) int {
2+
if n < 2 {
3+
return n
4+
}
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]
12+
}

lcof/面试题10- II. 青蛙跳台阶问题/README.md

+25
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,32 @@ var numWays = function(n) {
7272
};
7373
```
7474

75+
76+
77+
### Go
78+
79+
```go
80+
func numWays(n int) int {
81+
if n == 0 {
82+
return 1
83+
}
84+
if n <= 2 {
85+
return n
86+
}
87+
a := make([]int,n)
88+
a[0] = 1
89+
a[1] = 2
90+
for i := 2; i<n; i++ {
91+
a[i] = (a[i-1]+a[i-2])%1000000007
92+
}
93+
return a[n-1]
94+
}
95+
```
96+
97+
98+
7599
### ...
100+
76101
```
77102
78103
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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]
15+
}

lcof/面试题11. 旋转数组的最小数字/README.md

+24
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,31 @@ var minArray = function(numbers) {
9696
};
9797
```
9898

99+
### Go
100+
101+
```go
102+
func minArray(nums []int) int {
103+
l,r := 0,len(nums)-1
104+
for l < r {
105+
mid := l + (r-l)>>1
106+
if nums[mid] > nums[r] {
107+
l = mid + 1
108+
} else if nums[mid] <nums[r] {
109+
r = mid //r 本身不需要被排除
110+
} else {
111+
r--
112+
}
113+
}
114+
return nums[l]
115+
}
116+
```
117+
118+
119+
120+
121+
99122
### ...
123+
100124
```
101125
102126
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
func minArray(nums []int) int {
2+
l,r := 0,len(nums)-1
3+
for l < r {
4+
mid := l + (r-l)>>1
5+
if nums[mid] > nums[r] {
6+
l = mid + 1
7+
} else if nums[mid] <nums[r] {
8+
r = mid //r 本身不需要被排除
9+
} else {
10+
r--
11+
}
12+
}
13+
return nums[l]
14+
}

0 commit comments

Comments
 (0)