最近在学习go语言,正好也在刷leetcode,所以想到用go来写一下leecode算法。
不按照leetcode顺序来写,先从简单的开始。
本博客持续更新中…
持续更新地址:
https://github.com/ophlr/go-algorithm/tree/master/leetcode
- 两数之和(原第1题)
package main
import (
"fmt"
)
func main() {
nums := []int{2, 3, 4, 5}
target := 9
res := twoSum(nums, target)
fmt.Println(res)
}
func twoSum(nums []int, target int) []int {
for i, v := range nums {
for x := i + 1; x < len(nums); x++ {
if v + nums[x] == target {
return []int{i, x}
}
}
}
return []int{}
}
- 整数反转(原第7题)
package main
import (
"fmt"
"math"
)
func main() {
a := -123
b := reverse(a)
fmt.Println(b)
}
func reverse(x int) int {
var num int
for x != 0 {
num = num * 10 + x % 10
x /= 10
}
if num > math.MaxInt32 || num < math.MinInt32 {
return 0
}
return num
}
- 回文数(原第9题)
package main
import (
"fmt"
)
func main() {
a := 0
b := isPalindrome(a)
fmt.Println(b)
}
func isPalindrome(x int) bool {
if x >= 0 {
a := x
var num int
for x != 0 {
num = num*10 + x%10
x /= 10
}
if a == num {
return true
}
}
return false
}