记录在力扣刷Go算法题时候的一些常用语句

起因

如何使用?

可以通过CTRL+R在浏览器中搜索想要的操作,看看有没有记录即可!
如果有其他的常用语法没有记录在里面也可以告诉我补充进来.

真正的起因

最新在尝试学习刷Go语言的算法题,从Java到Go的最大的感觉就是好之前自己积累的一些小套路的实现变了.力扣虽然有自己的笔记本,但是是按照题目划分的,所以还是跑来这里写一篇文章,遇到新的小技巧就补充过来好了.
记录格式如下:
一级标题 - 知识点
二级标题 - 备注
内容 - 套路

优秀文章集合

GO语言的31个坑

Go基础知识篇幅

基础不牢,地动山摇

今天刷力扣388.文件的最长绝对路径的时候,\n\t不知道怎么处理(误以为是独立的\n两个字符),看了题解发现这两个合起来的整体是一个byte字符.这对我认知的颠覆…

Go指针低级错误记录

今天学习力扣中的382.链表随机结点的题目的时候,在使用指针取数据的时候会报错误,错误代码如下所示:

	/**
	 * Definition for singly-linked list.
	 * type ListNode struct {
	 *     Val int
	 *     Next *ListNode
	 * }
	 */
	type Solution []int
	
	
	func Constructor(head *ListNode) (s Solution) {
   
	    for node := head; node != nil; node = node.Next {
   
	        s = append(s, node.Val)
	    }
	    return s
	}
	
	func (this *Solution) GetRandom() int {
   
		// 错误位置: 下面应当注意运算符的优先级: (*this)
	    return *this[rand.Intn(len(*this))]
	}

错误原因:运算符的优先级,所以最后返回的时候需要使用(*this)

Go断言

Go断言能够判断反射过程中是否是自己需要的类型

	// 语法规则
	x.(T) // T为断言的类型
	// Demo1: 判断是否是int类型数据
	if _, ok := v.(int); ok {
   
		fmt.Println("v's type is int!")
	}

Go - Swap语法糖

	// 传统方法
	func (h IntHeap) Swap(i, j int	{
   
		temp := i
		i = j
		j = temp
	}
	// 语法糖格式
	func (h IntHeap) Swap(i, j int)      {
    h[i], h[j] = h[j], h[i] } 

Go切片的删除操作

Go切片-如何合并两个切片的数据

补充资料...

intSlice1 := []int {
   1, 2, 3}
intSlice2 := []int {
   4, 5, 6}
intSlice1 = append(intSlice1, intSlice2...)
fmt.Println(intSlice1)	// {1,2,3,4,5,6}

Go切片的删除操作相当于重新赋值

	// 假设切面为 slice
	// 删除最后一个元素
	slice = slice[:len(slice)-1]

更多操作

Go内置sort排序

升序排序

intList := [] int {
   2, 4, 3, 5, 7, 6, 9, 8, 1, 0}
float8List := [] float64 {
   4.2, 5.9, 12.3, 10.0, 50.4, 99.9, 31.4, 27.81828, 3.14}
stringList := [] string {
   "a", "c", "b", "d", "f", "i", "z", "x", "w", "y"}

sort.Ints
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值