GO的第四天二叉树和连接数据库

type TreeNode struct {
      Val int
      Left *TreeNode
      Right *TreeNode
 }

func isBalanced(root *TreeNode) bool {
   return chs(root)!=-1
}

func chs(root *TreeNode)int  {
   if root==nil{
      return 0
   }

   l:=chs(root.Left)
   if -1 == l {
      return l
   }

   r:=chs(root.Right)
   if -1 == r {
      return r
   }
   if math.Abs(float64(l)-float64(r))<2{
      return -1
   }
   return int(1 + math.Max(float64(l), float64(r)))
}

在力扣上一直报错然后发现右树放了左树的值检查不仔细。

===============

连接数据库

import (
   "database/sql"
   "fmt"
   "strconv"
   "time"
)

var db=&sql.DB{}

func init()  {
  //Oracle的
  db, err := sql.Open("oci8", "scott(账号)/tiger(密码)@(ip:端口)/库名")
  //Msql的
  db,_ = sql.Open("mysql", "root():root(密码)@(地址)/test(库名)?charset=utf8")
}

func main() {
   xt, err :=db.Begin()
   fmt.Println("",db,err,xt)
   //insert
   start := time.Now()
   //Begin函数内部会去获取连接
   tx,_ := db.Begin()
   for i := 1301;i<=1400;i++{
      //每次循环用的都是tx内部的连接,没有新建连接,效率高
      tx.Exec("INSERT INTO user(uid,username,age) values(?,?,?)",i,"user"+strconv.Itoa(i),i-1000)
   }
   //最后释放tx内部的连接
   tx.Commit()

   end := time.Now()
   fmt.Println("insert total time:",end.Sub(start).Seconds())
}

===========================

前天的切片今天去重新看了一遍并练习已理解

slice := []int{10, 20, 30, 40, 50}
newSlice := slice[2:3]//截取的是30,下标从零开始数,数到2然后不能大于3
fmt.Printf("========%d+++++%d\n",slice,newSlice)
//输出结果为:========[10 20 30 40 50]+++++[30]
d:= []int{2}
d=append(d, slice[len(slice)-1])//这样就是在d的后面追加slice长度-1的下标下的值50
fmt.Printf("********%d",d)
//输出结果为:********[2 50]
*d = (*a)[:len(*a)-1]
这个就是在a切片截取它的长度减一的值。
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值