golang刷题
91吴先生
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 15. 二进制中1的个数 golang版本
func hammingWeight(num uint32) int { cnt :=0 for num!=0{ cnt++ num=num&(num-1) } return cnt}n&(n-1)会把n最右边的1变成0,那么有多少个1就需要多少次这样的运算原创 2020-07-20 00:22:36 · 292 阅读 · 0 评论 -
剑指 Offer 14- II. 剪绳子 II golang版本
func cuttingRope(n int) int { if n==1||n==2{ return 1 } if n==3{ return 2 } sum :=1 for n>4{ sum=(sum*3)%1000000007 n=(n-3)%1000000007 } return (sum*n)%1000000007}剪绳子这题可以用dp做,也可以根据数学公式做原创 2020-07-20 00:10:52 · 168 阅读 · 0 评论 -
剑指Offer-05-替换空格golang版本
func replaceSpace(s string) string { res :="" for _,v := range s{ if v==' ' { res+="%20" }else{ res+=string(v) } } return res}这题的思路主要还是想创建一个新数组,遇到空格就就加上%20...原创 2020-07-17 23:42:46 · 152 阅读 · 0 评论 -
剑指Offer-04-二维数组中的查找-golang版本
func findNumberIn2DArray(matrix [][]int, target int) bool {if len(matrix)==0||len(matrix[0])==0{ return false} row,col :=len(matrix),len(matrix[0]) i,j :=0,col-1 for i<row&&j>=0{ if matrix[i][j]==target{原创 2020-07-17 23:16:09 · 151 阅读 · 0 评论 -
剑指Offer03-数组中重复的数字
func findRepeatNumber(nums []int) int { //这里应该用切片因为长度是动态的 arr :=make([]int,len(nums)) for i :=0;i<len(arr);i++{ arr[nums[i]]++ if arr[nums[i]]>1{ return nums[i] } } return -1}...原创 2020-07-17 22:45:15 · 104 阅读 · 0 评论