Go
合并两个有序数组 /* nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 */ func mergeArr(nums1 []int, m int, nums2 []int, n int) { p := m - 1 q := n - 1 k := len(nums1) - 1 for p >= 0 && q >= 0 { if nums1[p] > nums2[q] { nums1[k] = nums1[p] p -= 1 } else { nums1[k] = nums2[q] q -= 1 } k -= …
type TreeNode struct { Val int Left *TreeNode Right *TreeNode } 前序遍历 func preorderTraversal(root *TreeNode) []int { var result []int preorder(root, &result) return result } func preorder(root *TreeNode, output *[]int) { if root != nil { *output = append(*output, root.Val) preorder(root.Left, …
解法一
func isPalindrome(x int) bool { //负数不是回文数 if x < 0 { return false } if x%10 == 0 && x != 0 { return false } arr := make([]int, 0, 32) for x > 0 { arr = append(arr, x%10) x = x / 10 } for i, j := 0, len(arr)-1; i <= j; i, j = i+1, j-1 { if arr[i] != arr[j] { return false } } …
二分查找 需要注意的三点:
循环退出条件,注意是 low <= high,而不是 low < high。 mid 的取值,mid := low + (high-low)/2 low 和 high 的更新。low = mid + 1,high = mid - 1。 package main import ( "fmt" ) func main() { s1 := []int{1, 3, 4, 6, 9} fmt.Println(binarySearch(s1, 6)) //3 } func binarySearch(nums []int, target int) …
问好 package main import ( "fmt" ) func main() { var name string fmt.Printf("请输入姓名:") fmt.Scanln(&name) switch name { case "jim": fmt.Println("你好 " + name) case "tom": fmt.Println("hello " + name) case "mike": fmt.Println("hi " + …
计算 1 到 10 的数字之和 package main import ( "fmt" ) func main() { var sum = 0 for i := 0; i <= 10; i++ { sum += i } fmt.Println(sum) } sum 小于 10 的时候计算 sum 自相加后的值 package main import "fmt" func main() { //sum 小于 10 的时候计算 sum 自相加后的值 sum := 1 for sum <= 10 { sum += sum } …
判断用户年龄 package main import ( "fmt" ) func main() { var age int fmt.Printf("请输入年龄:") fmt.Scanln(&age) if age >= 18 { fmt.Println("您已成年,可以上网。") } else { fmt.Println("未成人不能上网!") } }
从控制台读取输入 方式1:
package main import ( "fmt" ) func main() { var name string var age int fmt.Printf("请输入姓名:") fmt.Scanln(&name) fmt.Printf("请输入年龄:") fmt.Scanln(&age) fmt.Printf("输入的姓名:%v, 年龄:%v \n", name, age) } 方式2:
package main import ( "fmt" ) func …
使用var关键字,后跟所需的名称以及变量将保存的值的类型。 var 变量名称 变量类型 //声明字符串变量 var message string //声明int变量 var number int //声明bool变量 var flag bool 声明变量并赋值 var message string = "hello world" 同一语句中为多个变量赋值 var width, height, name = 10, 20, "jack" 如果在声明变量的同时为其赋值,通常可以在声明中省略变量类型。 var width = 10 var height = 30 …
字符串 package main import ( "fmt" "reflect" ) func main() { //定义字符串变量 var message string //打印变量类型 fmt.Println(reflect.TypeOf(message)) //string //打印变量 fmt.Println(message) //"",默认为空字符串 message = "Hello World" fmt.Println(message) //Hello World } int类型 package main …
1/2
Next