Golang版LeetCode基本算法函数

Posted Pistachiout

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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基本算法函数的主要内容,如果未能解决你的问题,请参考以下文章

手撸golang 基本数据结构与算法 哈希表

golang算法--leetcode17

golang的leetcode之路

用golang刷LeetCode

菜鸟系列 Golang 实战 Leetcode —— 300. 最长上升子序列

leetcode刷题18.反转链表——Java版