
golang学习
文章平均质量分 51
golang学习笔记
dengjiayue
这个作者很懒,什么都没留下…
展开
-
leec169多数元素(go实现
给定一个大小为 n 的数组nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/majority-element著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2023-03-15 20:10:56 · 132 阅读 · 0 评论 -
leec160相交链表(go实现
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null。又是熟悉的身影,只要是有关查找的算法大部分都可以用hash来解决时间复杂度相对较低.判断h1中的元素是否在h2中能找到,使用循环遍历的方法。时间上hash比双循环快了十二倍,但空间大了0.5MB。原创 2023-03-15 19:20:36 · 102 阅读 · 0 评论 -
leec217存在重复元素(go实现
给你一个整数数组 nums。如果任一值在数组中出现 至少两次 ,返回 true;如果数组中每个元素互不相同,返回 false。当第一次出现的时候为false,其他第二次以上出现为ture,最后判断map中是否存在false。hash表确实对于查找一类的问题挺好用的,但确实有点消耗内存.建立一个map[int]bool。原创 2023-03-14 19:38:50 · 97 阅读 · 0 评论 -
leec206反转链表(go实现
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。你需要申请一个变量来储存p.nent.next变量,不然就找不到了。原:p.next->q。变为q.next->p。原创 2023-03-14 18:59:01 · 151 阅读 · 0 评论 -
判断同构字符串(go实现
也是hash表映射的方式,到那时不同的是他建立了两个hash表进行相互映射,这样就可以避免双循环的方法时间复杂度太高的问题.也可以减少遍历时空间的 浪费.如果s与t都是第一次出现的时候就存入map中,当s或t第二次出现的时候就与之前的进行进行对比,如果相同就继续遍历,如果不同就return false,不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。我开始想到的使用hash表的方法。原创 2023-03-13 19:23:41 · 113 阅读 · 0 评论 -
移除链表元素(go实现
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。题目中说的是node.Val=val的元素,就用for循环遍历所有节点,移除其中node.Val=val的节点。本题主要是一个移除链表元素的一个题。然后就是判断该移除哪个元素。原创 2023-03-13 17:45:02 · 122 阅读 · 0 评论 -
解决Failed to run ‘/usr/local/go/bin/go env. The config change may not be applied correctly.问题
然后我就把go.mod删除了就可以运行了,但是f5调试的时候又报错。一大早起来发现go用不了了,奇怪,就突然报一个这个错误。go run 的时候报这个错误。我就去问gbt怎么解决,原创 2023-03-13 17:19:38 · 3973 阅读 · 0 评论 -
环形链表(go实现
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。仅仅是为了标识链表的实际情况。链接:https://leetcode.cn/problems/linked-list-cycle。如果链表中存在环 ,则返回 true。否则,返回 false。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。给你一个链表的头节点 head ,判断链表中是否有环。原创 2023-03-12 23:41:24 · 187 阅读 · 0 评论 -
excel表列名称(go实现
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。值得注意的是没有A0,就是26->Z;'A’的ASCII为65,A-Z分别表示1-26,就是说26%==0时。原创 2023-03-12 23:30:46 · 140 阅读 · 0 评论 -
只出现一次的数字(go实现
我首先想到的是双指针法循环遍历的方式,不是说这个方法有多好,只是我开始只能想到这个方法,就是定义q,p,q=p+1如果相同就p++直到找到不重复的数为止,这个方法时间复杂度为n^2所以不推荐,给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。就是所有的数进行异或运算,相同的数就为0最后就剩下单独出现的数了。官方解答,官方用的是为运算中的异或运算,0^1=1,原创 2023-03-11 21:49:16 · 81 阅读 · 0 评论 -
验证回文字符串(Go实现
定义i=0,j=len(s)-1,对比s[i]与s[j]是否相同,用for循环遍历,只要有一个不相同的就return false。如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。值得注意的是记得跳过非数字字母字符,还有就是忽略大小写差异。字母和数字都属于字母数字字符。原创 2023-03-11 21:15:55 · 254 阅读 · 0 评论 -
杨辉三角(go实现
就是说这个数=前面这个数在加上他之前的那一位,没有就是0。原创 2023-03-10 23:09:00 · 311 阅读 · 0 评论 -
leec买卖股票的最佳时期(go实现
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。当p[smal]>p[big],就将smal=big并继续执行直到big=len§。返回你可以从这笔交易中获取的最大利润。1,双指针法,big,smal。原创 2023-03-10 21:37:09 · 125 阅读 · 0 评论 -
快乐数(go实现
首先观察快乐数有什么特征,最后可以得到1,所以最后计算结果为1的才是快乐数,在个位中只有1和7可以,其他都不是快乐数了,链接:https://leetcode.cn/problems/happy-number。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。如果这个过程 结果为 1,那么这个数就是快乐数。编写一个算法来判断一个数 n 是不是快乐数。原创 2023-03-08 23:03:31 · 89 阅读 · 0 评论 -
leec位1 的个数(go实现
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。值得注意的是优先级可能和你想的不一样,我开始没加括号是通不过的,可以去查一下运算符的优先级.用一个for循环遍历。原创 2023-03-08 22:26:26 · 103 阅读 · 0 评论 -
颠倒二进制数(go实现
上面的操作)实现将n的第i位,赋值到r的第31-i位上面去,从而实现调换位置,再使用一个for循环。先用n>>i&1就是将n的第i位移动到第一位与1进行与操作,获取第i位的数值,这一条,我有点看不懂,但是确实可行,所以就用他的吧,思路都是一样的.再用原创 2023-03-08 21:56:25 · 241 阅读 · 0 评论 -
位操作简介
右移(>>):将一个二进制数向右移动指定的位数,高位补0(对于无符号数),或者用符号位的值补高位(对于有符号数)。按位与(&):将两个二进制数的每个位进行与运算,只有两个二进制数相应的位都为1时,结果位才为1。按位或(|):将两个二进制数的每个位进行或运算,只有两个二进制数相应的位都为0时,结果位才为0。按位异或(^):将两个二进制数的每个位进行异或运算,如果相应的位相同,则结果位为0,否则为1。按位取反(~):将一个二进制数的每个位进行取反操作,即将0变成1,1变成0。原创 2023-03-08 09:51:26 · 88 阅读 · 0 评论 -
合并两个有序数组(go实现
为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。我开始想到的是数组插入法,判断插入条件num1[i]原创 2023-03-08 00:01:35 · 771 阅读 · 0 评论 -
lec删除排序链表中的重复元素(go实现
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。原创 2023-03-07 00:22:51 · 157 阅读 · 0 评论 -
lecode不用其他内置函数的情况下找x的平方根(go实现)
lecode不用其他内置函数的情况下找x的平方根(go实现)原创 2023-03-06 23:27:59 · 188 阅读 · 0 评论 -
go实现加一
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。原创 2023-03-06 00:38:35 · 191 阅读 · 0 评论 -
二进制求和
二进制求和:给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。原创 2023-03-05 23:59:09 · 142 阅读 · 0 评论 -
go查找最后单词长度
go查找最后单词长度原创 2023-03-05 00:30:00 · 78 阅读 · 0 评论 -
搜索插入位置
搜索插入位置原创 2023-03-05 00:03:10 · 82 阅读 · 0 评论 -
go实现移除元素(lecode)
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。原创 2023-03-04 00:38:32 · 185 阅读 · 0 评论 -
golang接口interface
接口是一个或多个方法签名的集合。任何类型的方法集中只要拥有该接口对应的全部方法签名。 就表示它 “实现” 了该接口举个例子来看一下:如果没有实现所有方法,只实现了部分的方法会发生什么呢?这时会报一个这样的错误:意思是一个数据类型如果没有实现接口的所有方法,那么就不能实现该接口。也就是不能这样写:var xiaohua animal = &cat{},就是说如果cat缺少animal的任意一个方法它就不能是animal。所以要实现一个接口就必须实现该接口的所以方法空接口就像是万金油,它可以作为任意原创 2022-07-01 10:58:04 · 251 阅读 · 0 评论 -
golang链表建立
用结构体表示一个储存单元,结构体一般至少放两个元素,一个value(类型自己定义)用来储存数据,还有一个指针用来指向该节点的后继(也可以是前驱,随便怎么理解,目的是为了找到它之前或者之后的结点,一般理解为后继,也就是之后的结点。当然,如果是双向链表需要两个指针)......原创 2022-06-28 18:00:46 · 531 阅读 · 0 评论 -
golang基本语法
go语言原创 2022-03-15 20:44:02 · 1812 阅读 · 0 评论