随笔分类 - go编程
摘要:题意:需要对链表进行深拷贝,要同时拷贝链表节点的val、next指针和random指针题解一: 逐个拷贝每个链表节点到当前节点的后面,分三次遍历,每次遍历走两步,最后达到深拷贝的目的1、第一次遍历原链表,逐个拷贝当前节点的值和next执行,(1->2->3变成1->1'->2->2'->3->3')
阅读全文
摘要:滑动窗口算法的思路是这样: 1、我们在字符串 S 中使用双指针中的左右指针技巧,初始化 left = right = 0,把索引左闭右开区间 [left, right) 称为一个「窗口」。 2、我们先不断地增加 right 指针扩大窗口 [left, right),直到窗口中的字符串符合要求(包含了
阅读全文
摘要:一、翻转字符串 问题描述 请实现⼀个算法,在不使⽤额外数据结构和储存空间的情况下,翻转⼀个给定的字符串(可以使⽤单个过程变量)。 解题思路 由于不允许使用额外的数据接口和存储空间,所以我们将⼀个字符串以中间字符为轴,前后翻转,也就是将str[len]赋值给str[0],将str[0]赋值str[le
阅读全文
摘要:本题的关键是越往后找到一个最大的数与越靠前的最小的数进行交换。从右往前遍历,找到右边最大数的位置,和左边最小数的位置进行交换 时间复杂度为O(len(num)) func maximumSwap(num int) int { numStr := fmt.Sprintf("%d", num) if l
阅读全文
摘要:一、数字串转换为字符串 1-26个数字分别代表26个字符(A-z)输入"12326〞就可以拆分为【1,2,3,2,6】、(12, 3, 2, 6]. [1, 23, 2, 6]【1,23,26】、【12,3,26】等,将每种组合转成成对应字母输出,输出所有可能的结果返回所有可能的转换结果// 将数字
阅读全文
摘要:背景: 1、对于有就绪状态的服务来说,进程起来了并不等同于服务就绪了,该服务能否提供服务强依赖于就绪状态2、服务的运行状态不是由服务进程决定的,而是由外部的状态开关去动态配置(start\handle\stop)3、如果服务从启动到进入就绪状态,需要较长的时间,在这个期间频繁的下发启动命令,就可能重
阅读全文
摘要:package main import ( "fmt" ) func printLetter(ch chan bool, letter string, nextCh chan bool, done chan bool) { for i := 0; i < 5; i++ { <-ch fmt.Prin
阅读全文
摘要:https://leetcode.cn/problems/k-th-smallest-in-lexicographical-order/solution/pythonjavajavascriptgo-di-gui-by-himymbe-5mq5/ func findKthNumber(n int,
阅读全文
摘要:链接:https://www.nowcoder.com/questionTerminal/2b317e02f14247a49ffdbdba315459e7来源:牛客网 牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等 现在给你2个版本号version1和version2,请你比
阅读全文
摘要:https://leetcode.cn/problems/split-array-into-fibonacci-sequence/solution/jiang-shu-zu-chai-fen-cheng-fei-bo-na-qi-ts6c/ func splitIntoFibonacci(str s
阅读全文
摘要:https://leetcode.cn/problems/reorder-list/solution/zhong-pai-lian-biao-by-leetcode-solution/ /** * Definition for singly-linked list. * type ListNode
阅读全文
摘要:https://leetcode.cn/problems/sqrtx/solution/x-de-ping-fang-gen-by-leetcode-solution/ //二分查找 某个数 func mySqrt(x int) int { l, r := 0, x ans := -1 for l
阅读全文
摘要:https://leetcode.cn/problems/generate-parentheses/solution/-by-1978-7-owhs/ /** * @name: 括号生成 * @param {int} n 括号的个数 * @return {*} */ func generatePar
阅读全文
摘要:https://leetcode.cn/problems/open-the-lock/solution/shou-hua-tu-jie-tu-bfs-lin-jie-guan-xi-7-ud8c/ func openLock(deadends []string, target string) int
阅读全文
摘要:https://leetcode.cn/problems/permutations/ var ans [][]int var vis map[int]bool func permute(nums []int) [][]int { path:=make([]int,0) ans=make([][]in
阅读全文
摘要:https://leetcode.cn/problems/maximum-subarray/ func maxSubArray(nums []int) int { maxAns:=-99999999999 len:=len(nums) ans:=0;begin:=0 le:=0;ri:=len-1
阅读全文
摘要:一、求数组局部最大值 func findMax(nums []int) int{//只能从nums里面随机找到一个符合局部最大的数字 le:=0;ri:=len(nums)-1 for le<ri{ mid:=(le+ri)/2 if nums[mid]>nums[mid+1]{ ri=mid }e
阅读全文
摘要:https://leetcode.cn/problems/8Zf90G/ func evalRPN(tokens []string) int { stack := make([]int,0) for _, token := range tokens { val, err := strconv.Ato
阅读全文
摘要:https://leetcode.cn/problems/4sum-ii/solution/si-shu-xiang-jia-ii-by-leetcode-solution/ 时间复杂度和空间复杂度都是O(n2) func fourSumCount(a, b, c, d []int) (ans in
阅读全文
摘要:一、redis set nx实现限流 比如我们需要在10秒内限定20个请求,那么我们在setnx的时候可以设置过期时间为当前时间戳+10s,使用set nx 设置20个互不相同的key,当请求的setnx数量达到20时候即达到了限流效果。 当然这种做法的弊端是很多的,比如当统计1-10秒的时候,无法
阅读全文