From c09abd75f4971bf7eec3befe75ce6d18aa541604 Mon Sep 17 00:00:00 2001 From: hzliangbin <liangbin156@qq.com> Date: Sat, 4 Jul 2020 19:30:57 +0800 Subject: [PATCH] feat: add Golang solution for lcof problem 10-11 --- .../README.md" | 24 ++++++++++++++++++ .../Solution.go" | 12 +++++++++ .../README.md" | 25 +++++++++++++++++++ .../Solution.go" | 15 +++++++++++ .../README.md" | 24 ++++++++++++++++++ .../Solution.go" | 14 +++++++++++ 6 files changed, 114 insertions(+) create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/Solution.go" create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/Solution.go" create mode 100644 "lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/Solution.go" diff --git "a/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/README.md" index 8c60b767d8b63..15ac0485cdaea 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/README.md" @@ -77,7 +77,31 @@ var fib = function(n) { }; ``` + + +### Go + +```go +func fib(n int) int { + if n < 2 { + return n + } + a := make([]int,n+1) + a[0]=0 + a[1]=1 + for i := 2; i < n+1; i++ { + a[i] = (a[i-1]+ a[i-2])%1000000007 + } + return a[n] +} +``` + + + + + ### ... + ``` ``` diff --git "a/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/Solution.go" "b/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/Solution.go" new file mode 100644 index 0000000000000..3b15e13ff9e1c --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23010- I. \346\226\220\346\263\242\351\202\243\345\245\221\346\225\260\345\210\227/Solution.go" @@ -0,0 +1,12 @@ +func fib(n int) int { + if n < 2 { + return n + } + a := make([]int,n+1) + a[0]=0 + a[1]=1 + for i := 2; i < n+1; i++ { + a[i] = (a[i-1]+ a[i-2])%1000000007 + } + return a[n] +} \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/README.md" index 2489bb0d452b5..6b6ccd0610c83 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/README.md" @@ -72,7 +72,32 @@ var numWays = function(n) { }; ``` + + +### Go + +```go +func numWays(n int) int { + if n == 0 { + return 1 + } + if n <= 2 { + return n + } + a := make([]int,n) + a[0] = 1 + a[1] = 2 + for i := 2; i<n; i++ { + a[i] = (a[i-1]+a[i-2])%1000000007 + } + return a[n-1] +} +``` + + + ### ... + ``` ``` diff --git "a/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/Solution.go" "b/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/Solution.go" new file mode 100644 index 0000000000000..ab25119e68dfd --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23010- II. \351\235\222\350\233\231\350\267\263\345\217\260\351\230\266\351\227\256\351\242\230/Solution.go" @@ -0,0 +1,15 @@ +func numWays(n int) int { + if n == 0 { + return 1 + } + if n <= 2 { + return n + } + a := make([]int,n) + a[0] = 1 + a[1] = 2 + for i := 2; i<n; i++ { + a[i] = (a[i-1]+a[i-2])%1000000007 + } + return a[n-1] +} \ No newline at end of file diff --git "a/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" index 27ee5d2059d5d..4c94057dd65d6 100644 --- "a/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" +++ "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/README.md" @@ -96,7 +96,31 @@ var minArray = function(numbers) { }; ``` +### Go + +```go +func minArray(nums []int) int { + l,r := 0,len(nums)-1 + for l < r { + mid := l + (r-l)>>1 + if nums[mid] > nums[r] { + l = mid + 1 + } else if nums[mid] <nums[r] { + r = mid //r 本身不需要被排除 + } else { + r-- + } + } + return nums[l] +} +``` + + + + + ### ... + ``` ``` diff --git "a/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/Solution.go" "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/Solution.go" new file mode 100644 index 0000000000000..8ab218981f8fe --- /dev/null +++ "b/lcof/\351\235\242\350\257\225\351\242\23011. \346\227\213\350\275\254\346\225\260\347\273\204\347\232\204\346\234\200\345\260\217\346\225\260\345\255\227/Solution.go" @@ -0,0 +1,14 @@ +func minArray(nums []int) int { + l,r := 0,len(nums)-1 + for l < r { + mid := l + (r-l)>>1 + if nums[mid] > nums[r] { + l = mid + 1 + } else if nums[mid] <nums[r] { + r = mid //r 本身不需要被排除 + } else { + r-- + } + } + return nums[l] +} \ No newline at end of file