Golang版LeetCode基本算法函数

  1. 二维数组
 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,算法,职场和发展)