Golang版LeetCode基本算法函数
Posted Pistachiout
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang版LeetCode基本算法函数相关的知识,希望对你有一定的参考价值。
- 二维数组
matrix := make([][]int, m)
for i := range matrix
matrix[i] = make([]int, n)
ans := make([][]int,0)//动态二维数组,初始化或清除所以元素
ans =append(ans,[]int )//添加元素
2.排序
count:=[2002]int
arrColne := append([]int, arr...)//克隆一个新数组
sort.Ints(count[:])//[2002]int 与[]int 不是一种类型,要先变成切片后再排序
//go语言没有返回数组最小的min函数,需要自己定义
sort.Ints(arr) //从小到大
sort.Sort(sort.Reverse(sort.IntSlice(arr))) //从大到小
sort.Slice(nums, func(i, j int) bool
return nums[i] > nums[j]
)//自定义排序从大到小
sort.Slice(index, func(i, j int) bool
a, b := array[index[i]], array[index[j]]
return a < b || (a == b && index[i] < index[j])
)/* array[i] = count
index[i] = i
自定义排序,实现index下标根据arr的值排序*/
3.字符串
strings.ContainsAny(str1.str2)//判断str1中是否存在str2
strings.Count(str1, str2)//判断字符串str2在字符串str1中的个数
string('a')//int,字符转字符串
strconv.Atoi() (int, error)//字符串转int
strconv.Itoa()//int转字符串,如需要int每一位值时可使用Itoa+Atoi
str[i]//下标遍历只读,不能修改
strBytes := []byte(str)//修改string,需要将 string 转为 []byte 修改后
4.遍历
for v:=range arr//v为下标
for _,v:=range arr//v为数值,注意用for each时,若只需要arr[i],一定要在前面加上_,不然返回的是i
next:for continue next//在遍历时如果要退出可使用continue退出多重循环
5.位运算
x&=x-1//求x二进制中1的个数
6.数组插入
copy(res[i+1:], res[i:])
res[i] = num //将数组下标i后面的copy到下标i+1,然后插入到下标i处
以上是关于Golang版LeetCode基本算法函数的主要内容,如果未能解决你的问题,请参考以下文章