自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

csdn_kou的博客

等风来

  • 博客(472)
  • 资源 (1)
  • 收藏
  • 关注

原创 vim如何自动补全,ycm配置

Ubuntu配置vim更新2018年11月8号 用了一段时间的Ubuntu 18简直太方便了。三步操作全部配完!!!git clone https://github.com/chxuan/vimplus.git ~/.vimpluscd ~/.vimplus./install.shcentos7配置ycm更新2018/11/29,对文章进行重新排版大牛的开源项目,一个键配置完...

2018-11-29 15:30:52 4968 3

原创 送东阳马生序

余幼时即嗜学。家贫,无从致书以观,每假借于藏书之家,手自笔录,计日以还。天大寒,砚冰坚,手指不可屈伸,弗之怠。录毕,走送之,不敢稍逾约。以是人多以书假余,余因得遍观群书。既加冠,益慕圣贤之道 ,又患无硕师、名人与游,尝趋百里外,从乡之先达执经叩问。先达德隆望尊,门人弟子填其室,未尝稍降辞色。余立侍左右,援疑质理,俯身倾耳以请;或遇其叱咄,色愈恭,礼愈至,不敢出一言以复;俟其欣悦,则又请焉。故余虽愚...

2018-09-30 21:13:42 929

原创 链表面试大全

这里处理的全部是单链表:typedef struct node { char *data; struct node *next; } node_t;我们约定一个打印链表的函数:void list_display(node_t *head){ for (; head; head = head->next) printf("%s ",...

2018-09-28 22:47:37 220

原创 Mac 每次启动都要 source ~/.zshrc

mac .zshrc

2023-02-10 12:59:16 1094 1

原创 win11 vmware 安装Ubuntu 连接xshell

aa

2022-08-21 14:38:12 683

原创 一步获取LeetCode的cookies

leetcode pluginplugin 下载https://github.com/shuzijun/leetcode-editor/blob/master/README_ZH.md获取登陆的cookies浏览器F12。console输入javascript:document.cookie 打完收工

2022-04-21 09:24:42 4532 3

原创 micro/protoc-gen-micro 不见了

micro/protoc-gen-micromicro/protoc-gen-micro

2022-03-27 22:19:53 861 3

原创 25. K 个一组翻转链表

25. K 个一组翻转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]code/** * Definition for singly-l

2022-02-21 23:29:42 164

原创 23. 合并K个升序链表

23. 合并K个升序链表给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输入:lists =

2022-02-21 11:47:06 240

原创 148. 排序链表

148. 排序链表给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围 [0, 5 * 104] 内-105 <= Node.val <= 105进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链

2022-02-21 11:46:02 314

原创 为什么LeetCode过一段时间又不会了

为什么上个月刚做过的LeetCode今天做又不会了怎么从这个迷宫的左上角走到右下角?看起来好像很给力,但是花时间还是可以找得到答案。看了答案之后可以很清楚,这是正解。只有一个问题:我怎么就没立刻想到? 当在看题解或者听别人讲授思路的时候,你就是按照正确的路线在走迷宫。而过了一个月,你重新再做一次的时候就又会把所有可能遍历一次。答案在展现给人的时候,我们都会觉得它显而易见。因为难点不在于答案本身,而在于方向。如何找到这个方向呢?在于搜索能力,以及经验与练习。DFS或者BFS把所有的可

2022-02-01 11:16:32 419

原创 Intelij 添加php注释

没有methodParameters())groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+=' * @param ' + params[i] + ((i < params.size() - 1) ? '\\n':'')}; return r

2020-11-09 17:32:57 195

原创 303. 区域和检索 - 数组不可变

303. 区域和检索 - 数组不可变给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3说明:你可以假设数组不可变。会多次调用 sumRange 方法。https://leetcode-c

2020-09-25 21:15:27 213

原创 链表相加 2. 两数相加

2. 两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807https://leetcode-cn.com/pro

2020-09-25 11:59:06 273

原创 go设计模式思维导图

go设计模式思维导图

2020-07-18 14:18:12 503

原创 Go 语言实现 23 种设计模式适配器

Go 语言实现 23 种设计模式适配器将一个类型的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的类可以一起工作。Example_onepackage mainimport "fmt"// Adaptee 适配者type MyLegacyPrinter struct{} func (l *MyLegacyPrinter) Print(s string) (newMsg string) { newMsg = fmt.Sprintf("Legacy Printer:

2020-07-18 14:17:13 277

原创 Go 语言实现 23 种设计模式 单例模式

Go 语言实现 23 种设计模式 单例模式单例模式单例模式是一种常用的软件设计模式,在使用过程中,单例对象的类只有一个实例。使用单例模式,1 可以节省内存等资源,例如windows操作系统的资源管理器只有一个就够了。2 方便配置管理,例如,服务器的配置信息存放在一个文件中,配置信息由一个单例实例统一读取,进场中的其他对象通过这个单例实例获取配置信息。实例1下面这段代码有什么问题,从多线程角度思考,就会发现下面的代码是非线程安全的,比如有两个线程都在调用NewInstance1函数,线程A在执行到if

2020-07-18 13:52:43 650

原创 Go 语言实现 23 种设计模式(修饰器)

修饰器修饰器模式就是在不改变对象内部结构的情况下,动态扩展它的功能。Example_onetype Object func(string) stringfunc Decorate(fn Object) Object { return func(base string) string { ret := fn(base) ret = ret + " and Tshirt" return ret }}func Dressing(cloth string) string { ret

2020-07-18 13:07:16 256

原创 gorm踩的坑

gorm的那些坑1. db.SingularTable(true)在Gorm中,表名是结构体名的复数形式,列名是字段名的蛇形小写。即,如果有一个user表,那么如果你定义的结构体名为:User,gorm会默认表名为users而不是user。db.SingularTable(true) 让grom转义struct名字的时候不用加上s2. Rows.Next() 需要关闭user := new(User)rows, err := engine.Where("id >?", 1).Rows(us

2020-07-09 19:16:25 4149

原创 goland远程调试Docker

开发环境goland windows10Docker centos IP:123.57.43.91操作原理及流程goland通过tcp/8080(应该选取2375,登录阿里云开启这个端口,这里临时采用)端口与docker-host通信, 发送docker指令,然后让linux执行,通过docker指令,创建image,运行container,实现host与container之间目录挂载,端口映射等操作。然后使用SFTP进行代码的上传 。配置端口和重启sudo vim /lib/systemd/s

2020-06-26 11:36:14 2315

原创 goland中grpc的安装

安装 gRPC网络环境允许的同学安装 gRPC 非常方便,直接执行以下命令即可安装完成:go get -u -v google.golang.org/grpc为什么已经翻墙了可是goland还是不行?Fetching https://google.golang.org/grpc?go-get=1https fetch failed: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeou

2020-06-23 09:19:50 887

原创 DFS

1254. 统计封闭岛屿的数目func closedIsland(grid [][]int) int { var num int for i:=0; i<len(grid); i++ { for j:=0; j<len(grid[0]); j++ { if grid[i][j] == 0 && dfs(grid, i, j) { num += 1 } } } return num}func dfs(grid [][]int, i, j

2020-06-14 11:09:59 222

原创 Redis运维和开发学习目录

Redis运维和开发学习笔记-全书思维导图Redis运维和开发学习笔记(1) Redis简介Redis运维和开发学习笔记(2) redis持久化Redis运维和开发学习笔记(3)redis搭建集群Redis运维和开发学习笔记(4) Redis参数意义Redis运维和开发学习笔记(5) 主从复制和sentinel哨兵模式Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令Redis运维和开发学习笔记(7) 内存管理和过期策略...

2020-06-11 14:56:53 230

原创 循环链表的反转

206. 反转链表func reverseList(head *ListNode) *ListNode { if head == nil || head.Next == nil { return head } p := reverseList(head.Next) head.Next.Next = head head.Next = nil return p}循环链表的反转func reverse(head, key *ListN

2020-06-09 15:38:09 1545

原创 LeetCode (合集)合并链表和数组

LeetCode 88. 合并两个有序数组 golangLeetCode 21. 合并两个有序链表 golang

2020-05-12 17:22:45 245

原创 LeetCode 88. 合并两个有序数组 golang

88. 合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6]...

2020-05-12 17:20:03 237

原创 LeetCode 128. 最长连续序列 golang

128. 最长连续序列【困难】给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。Code// 解题思路// 将所有nums中元素录入numMap// 对每个numMap中元素,检测是否是第一个起始元素,如果不是起始元素,skip;如果是,对该元素循环+1从numMap找到该元素对应的最长currentLength

2020-05-11 16:23:45 346

原创 LeetCode(合集)括号 golang

LeetCode(合集)括号20. 有效的括号 golang(三)22. 括号生成 golang 图解

2020-05-11 15:24:22 189

原创 LeetCode 20. 有效的括号 golang(三)

20. 有效的括号这个题做了三次,前两次的解法现在觉得是算不得正确的。看的多写得少做的多总结少给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: falseMefunc isValid(s

2020-05-11 15:22:19 226

原创 LeetCode(集合)队列和栈的相互实现 golang

手写!!!225. 用队列实现栈使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。你可以假设所有操

2020-05-10 15:45:39 225

原创 LeetCode(合集)删除数组中的元素(26,80,283)

26. 删除排序数组中的重复项80. 删除排序数组中的重复项 II golang283. 移动零 golang

2020-05-10 13:52:23 156

原创 283. 移动零 golang

283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。Codefunc moveZeroes3(nums []int) { j := 0 for i := 0; i < len(nums); i++ { if nums[i] == 0 { continue } nums[j]

2020-05-10 13:16:46 164

原创 80. 删除排序数组中的重复项 II golang

80. 删除排序数组中的重复项 II给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,1,2,3,3]

2020-05-10 13:16:05 193

原创 26. 删除排序数组中的重复项 golang

26. 删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度

2020-05-10 13:15:18 167

原创 45. 跳跃游戏 II golang 动态规划

45. 跳跃游戏 II给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。说明:假设你总是可以到达数组的最后一个位置。Codefunc jump(nums []int) int { length :=

2020-05-09 23:04:18 209

原创 1346. 检查整数及其两倍数是否存在 golang

1346. 检查整数及其两倍数是否存在1346. 检查整数及其两倍数是否存在给你一个整数数组 arr,请你检查是否存在两个整数 N 和 M,满足 N 是 M 的两倍(即,N = 2 * M)。更正式地,检查是否存在两个下标 i 和 j 满足:i != j0 <= i, j < arr.lengtharr[i] == 2 * arr[j]示例 1:输入:arr = [10,2,5,3]输出:true解释:N = 10 是 M = 5 的两倍,即 10 = 2 * 5 。示例

2020-05-09 19:25:19 438

原创 LeetCode 33. 搜索旋转排序数组 golang

33. 搜索旋转排序数组三个测试用例, 这个题的难度是二分法的左侧条件很难写出来。4 5 6 0 1 2 31 2 3 4 5 6 05 1 2 3 4( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度...

2020-05-06 23:52:44 160

原创 LeetCode(合集)两数之和总结 (1,167,1346)

两数之和 1167. 两数之和 II - 输入有序数组 golang一个数组是否存在两个数是target的整数倍?如果有人知道这是LeetCode哪个题,给我说一下给每个数做整除,然后在遍历...

2020-04-29 21:26:56 162

原创 1190. 反转每对括号间的子串 golang反转字符串

1190. 反转每对括号间的子串557. 反转字符串中的单词 III 344. 反转字符串 golang 这个题比较新,但是面试竟然被问到了。10分钟之内没写出来给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = “(abcd)”输出:“d...

2020-04-29 11:26:18 484 1

原创 6.824 Raft lesson4 2020(一)

raft实现距离上一篇文章一个月,因为6.824的课程看不懂,基础知识薄弱。现在了解一点Raft算法(自己动手实现一遍)还需要其他分布式相关的基础知识(实现一个分布式对象存储系统),然后再去继续学习。总结一下,如果直接就去学习6.824的课程收效甚微,一定要有一定基础知识储备才可以!Raft算法简单实现。package mainimport ( "fmt" "log" "mat...

2020-04-26 21:27:18 579

Redis开发与运维.png

Redis运维和开发学习笔记-全书思维导图。

2019-12-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除