![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
雨山摆渡人.
这个作者很懒,什么都没留下…
展开
-
二进制间距 Go语言
二进制间距题目:给定一个正整数 n,找到并返回 n 的二进制表示中两个相邻 1 之间的最长距离 。如果不存在两个相邻的 1,返回 0 。如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离是它们的二进制表示中位置的绝对差。例如,"1001" 中的两个 1 的距离为 3 。// 双指针法func binaryGap(n int) int { s := fmt.Sprintf("%b", n) distance, temp := 0,原创 2022-04-24 10:34:20 · 100 阅读 · 0 评论 -
相同的树 Go语言
相同的树题目:给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。// 深度优先搜索func isSameTree2(p *TreeNode, q *TreeNode) bool { if p == nil && q == nil { return true } if p == nil || q == nil { return false } if p.Val !=原创 2022-04-21 16:43:27 · 64 阅读 · 0 评论 -
字符的最短距离 Go语言
字符的最短距离题目:给你一个字符串 sss 和一个字符 ccc ,且 ccc 是 sss 中出现过的字符。返回一个整数数组 answeransweranswer ,其中 answer.length == s.length 且 answer[i] 是 sss 中从下标 i 到离它最近的字符 ccc 的距离 。两个下标 i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数// 双指针法,记录每次字符 c 出现的位置和上一次出现的位置,同时每次更新最近距离数组原创 2022-04-19 17:26:32 · 177 阅读 · 0 评论 -
字典序排数 Go语言
字典序排数题目:给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。// 深度优先遍历func lexicalOrder(n int) []int { ans := make([]int, 0, n) for i, num := 0, 1; i < n; i++ { ans = append(ans, num) if num*10 <= n { num *= 10 } e原创 2022-04-18 10:27:49 · 289 阅读 · 0 评论 -
合并两个有序数组 Go语言
合并两个有序数组题目:给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。// 合并两原创 2022-04-18 09:15:16 · 2077 阅读 · 0 评论 -
利用Go语言实现KMP算法
利用Go语言实现KMP算法原创 2022-04-10 12:36:38 · 1243 阅读 · 0 评论