- 博客(151)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注
原创 长相年轻,是因为这5个好习惯
爱美之心人皆有之,但有些人为了练就苗条的身材,不好好吃饭、摄入营养不足。平时对自己极尽严苛,但遇见喜欢的口味,却又暴饮暴食地放纵。殊不知,这些不规律的饮食习惯都在日复一日影响身体健康。当你开始好好吃饭,保持营养健康的三餐,年轻的体态才会慢慢向你靠近。
2023-04-15 10:46:18 643
原创 越过越好的人,都戒掉了这个习惯
闹铃响了,关了再睡一会儿吧,结果上班迟到;办了健身卡,每次拖拖拉拉,一张年卡只去了一两次……你拖到明天的事,总有人在今天努力做完。定好了目标,做好了计划,却反复找借口,小事拖大,大事拖炸,最后发现自己一事无成。想太多,会让我们的思想戴上枷锁。计划时踌躇满志,行动时犹豫不决,这不仅会消耗我们的体力和精力,也会瓦解我们做事的决心和意志。天下之事,总是困于想,而破于行。时间宝贵,别等生活失序,才茫然自责。愿你用行动打败拖延,活成自己喜欢的样子。习惯性拖延的人,只会在懈怠和懒惰中耗尽自己的时间。
2023-04-10 08:31:50 555
原创 【LeetCode】2285. 道路的最大总重要性
给你一个整数 n ,表示一个国家里的城市数目。城市编号为 0 到 n - 1 。给你一个二维整数数组 roads ,其中 roads[i] = [ai, bi] 表示城市 ai 和 bi 之间有一条 双向 道路。你需要给每个城市安排一个从 1 到 n 之间的整数值,且每个值只能被使用 一次 。道路的 重要性 定义为这条道路连接的两座城市数值 之和 。请你返回在最优安排下,所有道路重要性 之和 最大 为多少。...
2022-06-24 09:51:10 317
原创 【LeetCode】1011. 在 D 天内送达包裹的能力(二分搜索)
题目描述传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量(weights)的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 days 天内将传送带上的所有包裹送达的船的最低运载能力。示例1:输入:weights = [1,2,3,4,5,6,7,8,9,10], days = 5输出:15解释:船舶最低载重 15 就能够在 5 天内送达所有包裹,如下所示:第 1 天
2022-05-17 11:25:01 248
原创 GoLand 中提高研发效率的小技巧
技巧一:快速实现接口中的所有方法在结构体上通过⌥ (Option/Alt) + Enter组合键可调出要实现的接口搜索窗口,选择该结构体期望实现的接口以及接口中的方法,可自动将接口的方法添加到结构体的实现中。如下图:技巧二:将结构体提取成接口该方法没有对应的快捷键。首先需要将鼠标放到结构体内,然后右键 -> 选择Refactor(重构)菜单 -> 选择Extract Interface(提取接口)。最后会弹出窗口,填写一些必要的信息:要生成的接口名、接口被保存的文件位置、选择要生成的接口
2022-05-06 10:00:24 3179 1
原创 WebAssembly 入门教程
文章目录简介入门示例总结简介什么是 WebAssembly?在其主页上:https://webassembly.org/ 有如下描述:WebAssembly(缩写为 Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式。Wasm 被设计为用于编译编程语言的可移植目标,支持在 Web 上部署客户端和服务器应用程序。目前 Rust 对 WebAssembly 的支持较好。那 Go 什么时候开始支持支持 WebAssembly 的呢?Go 1.11 向 WebAssembly 添加了一个实验性端口。
2021-10-11 10:31:48 3144
原创 一家人在一起,就是最大的幸福
家,有这世上最爱我们的人。父母双亲,需要我们去敬爱。伴侣儿女,需要我们去守护。家,是我们每个人的后盾,是臂膀,是归宿。 家,是深深的牵挂。 有人说,家是清晨厨房的热粥,家是黄昏湖边的搀扶,家是一件雨衣,风里是它,雨里也是它。也有人说,家是倦鸟归来的巢,是避风遮雨的港湾,是柴米油盐酱醋茶。 家,是割舍不了的血脉亲情,是牵
2021-09-26 11:00:48 179
原创 Go单测从零到溜系列—0.单元测试基础
文章目录go test工具单元测试函数格式单元测试示例go test -vgo test -run回归测试跳过某些测试用例子测试表格驱动测试介绍示例并行测试使用工具生成测试代码测试覆盖率testify/assert安装使用示例总结go test工具Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具。go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的源代码文件都是go test测
2021-09-23 18:27:25 514
原创 并发与WorkerPool
代码结构我们创建了一个通用的 workerPool 包,根据业务所需的并发性使用 worker 来处理任务。一起来看下目录结构:workerpool├── pool.go├── task.go└── worker.goworkerpool 目录在项目的根目录下。Task 是需要处理单个工作单元;Worker 是一个简单的 worker 函数,用于执行任务;而 Pool 用于创建、管理 workers。实现先看下 Task 代码:// workerpool/task.gopackage
2021-08-30 10:56:14 934
原创 每天做一两件很难但上进的事
有句话说:“真正的上坡路,通常都不好走。”一个人想要退步,简直不费吹灰之力,只要好吃懒做、躺着不动就好了。但想要有所进步,却并不会轻松。 许多时刻,我们可能都会在努力变优秀和得过且过之间做十分纠结的选择。人人都想变优秀,这背后需要付出超乎常人的努力、坚持和毅力。但人人都不想吃苦受累,于是总有人在压力和困难面前打退堂鼓。 你总要明白:不学新的知识,你就不会有进步;不去
2021-08-13 15:09:57 150
原创 在 O(1) 时间内删除单链表结点
文章目录描述思路实现代码描述给定单向链表的头指针和结点指针,定义一个函数在 O(1) 时间内删除该结点。思路按照传统的思路,删除一个单链表的时间复杂度是 O(n),之所以要从头指针开始遍历,是为了找到被删除结点的前驱结点,然后将前驱结点的指针指向被删除结点的下一个结点,从而完成删除结点的工作。但是细想一下,这个时间复杂度是可以优化的,在这个题目中,我们已经知道被删除结点的信息,这样就可以获知被删除结点的下一个结点,要完成删除工作,只需要把下一个结点的值复制到待删除结点,然后把待删除结点的指针指向下
2021-08-12 09:38:46 391
原创 git 生成patch和使用patch
最近是遇到一个问题,自己本地修改了code,但是没有VPN上传不了,同事也就不能review,所有使用了git生成patch然后发给同事review。生成patch1、修改code后,切换branchgit branch test12、添加commit git commit -a -m "messenger"3、使用git diff生成的标准patchgit diff master > patch使用patch git apply patch由于这是一个类似UNIX下更新文
2021-07-07 14:45:42 439
原创 无法重来的一生,尽心生活
很多人一生大多苦于两件事,一是得不到,二是已失去。计较得失之间,我们很容易就忘了初心,也忘了生活的追求。于是,前半生,我们为得失所累;后半生,又为前半生所悔。 很多人都是这样,喜欢拿自己没有的东西对比别人拥有的东西。孩子总是别人家的聪明,工作生活总是别人家的更胜一筹,婚姻也是别人家的幸福。反观自己,似乎永远是一地鸡毛。 终其一生,我们似乎都在不断计较,又不断追悔。但
2021-06-25 09:47:01 318
原创 Go避坑指南:这些错误你犯过吗?
文章目录1、循环内部1.1、使用引用来循环迭代器变量1.2、在循环中调用 WaitGroup.Wait1.3、循环内使用 defer2、channel 堵塞3、不使用接口4、不注意结构体字段顺序5、测试中不使用 race 探测器6、总结虽然 Go 容易学习,但新手还是比较容易犯一些错误的。本文总结了 5 个常见的错误,你检验下自己犯过没有?!1、循环内部有几种方法可以弄清楚一个循环内的混乱情况。1.1、使用引用来循环迭代器变量出于效率考虑,经常使用单个变量来循环迭代器。由于在每次循环迭代中会有不同
2021-06-02 09:54:49 191
原创 不要透支自己
朋友辞职打算换个工作,刚开始她觉得要好好休息一段时间,可每天不是刷手机就是追剧,要不然就是熬夜玩游戏。有一天她突然间意识到:一周的时间过得太快,再这样下去自己就毁了。 她那一刻才明白,剧永远追不完,游戏总有新版本,但今天的时间过去就是过去了。于是她列出了“假期充实计划”:读完多少本书,练一手好看的字,学习一个新的技能等。 毕竟,短暂的快感可以
2021-06-02 09:32:44 258 1
原创 删除数据后,为什么内存占用率还是很高?
文章目录什么是内存碎片?内存碎片是如何形成的?内因:内存分配器的分配策略外因:键值对大小不一样和删改操作如何判断是否有内存碎片?如何清理内存碎片?小结在使用 Redis 时,我们经常会遇到这样一个问题:明明做了数据删除,数据量已经不大了,为什么使用 top 命令查看时,还会发现 Redis 占用了很多内存呢?实际上,这是因为,当数据删除后,Redis 释放的内存空间会由内存分配器管理,并不会立即返回给操作系统。所以,操作系统仍然会记录着给 Redis 分配了大量内存。但是,这往往会伴随一个潜在的风险点
2021-05-17 10:45:11 793
原创 今天的不开心就止于此吧。
看到这样一段话:“我也不知道自己是怎么了。可能是太压抑了吧,没办法调整自己的负面情绪,就是会突然难过,头一低,眼泪就掉下来了。” 可能每个人都会有这样的时刻吧,不开心的时候看喜剧也能戳到泪点。其实不过是想借个由头默默发泄一下藏在心里的委屈和疲惫罢了,出了门还是要打起精神继续面对生活。 长大以后的世界总是很矛盾的。我们有时好像有些麻木,有处理不完的琐事、应付不完的交流
2021-05-10 10:44:23 257 5
原创 自我管理的这些习惯,迷茫时看一看
一是,先处理好情绪,再处理事情。 有人说,能控制好自己情绪的人,比能拿下一座城池的将军更伟大。人在情绪失控时做出的事,最终往往都会后悔。 比如工作中遇到不开心的事,不要一味对着同事抱怨。这样既不能解决问题,还会引来更多的麻烦。别将已经糟糕的事无限放大,大到你无力承受,后悔不已。 二是,管理好时间,别肆意荒废。&nbs
2020-11-05 18:07:55 194 1
原创 【LeetCode】5.最长回文子串(动态规划)
题目描述定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”解题思路我们用一个 boolean dp[j][i] 表示字符串从 i 到 j 这段是否为回文。试想如果 dp[j][i]=true,我们要判断 dp[j-1][i+1] 是否为回文。只需要判断字符串在(j-1)和(i+1)两个位置是否为相同的字符,是不是
2020-10-24 16:18:59 368
原创 【LeetCode】55. 跳跃游戏 (动态规划)
题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。解题思路逆
2020-10-19 14:23:23 291
原创 【LeetCode】474. 一和零 (动态规划)
问题描述在计算机界中,我们总是追求用有限的资源获取最大的收益。现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字符串的最大数量。每个 0 和 1 至多被使用一次。示例 1:输入: strs = [“10”, “0001”, “111001”, “1”, “0”], m = 5, n = 3输出: 4解释: 总共 4 个字符串可以通过 5 个 0 和 3 个 1 拼出
2020-10-16 14:17:53 286 1
原创 人到了一定年纪,会明白六个道理
第一,身体是你自己的,要爱惜。 人在年轻时常常透支健康,我们熬夜加班,熬夜赶进度,熬夜做一些原本并不着急的事。到了一定年纪才发现,什么都不及一个好身体要紧。因为没有了好身体,我们拥有再多都会化为泡影。 年轻时也总喜欢争强好胜,一旦遇到令我们不愉快的人、让我们不顺心的事,就容易生气动怒甚至大发脾气。后来才发现,在这个世界上,除了生死,都是小事。
2020-10-15 11:19:44 1257 4
原创 goland常用快捷键
文章目录Windows1. 查询快捷键2. 自动代码3. 复制快捷方式4. 其他快捷方式MacMac 键盘符号说明Shortcuts 捷径General 常用Usage Search 变量搜索Search / Replace 搜索/替换Editing 文本编辑Navigation 导航WindowsCtrl+/ 或 Ctrl+Shift+/ 注释(// 或者/…/ )Ctrl+D 复制行Ctrl+X 删除行快速修复 alt+enter (modify/cast)代码提示 alt+/ctr+G
2020-10-15 11:07:01 2019
原创 你真的懂string与[]byte的转换了吗
string类型和[]byte类型是我们编程时最常使用到的数据结构。本文将探讨两者之间的转换方式,通过分析它们之间的内在联系来拨开迷雾。文章目录两种转换方式原理分析两种转换方式标准转换go中string与[]byte的互换,相信每一位gopher都能立刻想到以下的转换方式,我们将之称为标准转换。// string to []bytes1 := "hello"b := []byte(s1)// []byte to strings2 := string(b)强转换通过unsafe
2020-10-13 16:07:11 1770
原创 获取database/schema的privileges
在postgresql数据库中,有information_schema.table_privileges这个view,可以直接查看某个用户对于某张表有哪些权限。现在有个需求 ,希望对于database/schema也能这么方便的查询。database_privilegesSELECT pd.datname AS database_name, COALESCE(NULLIF(role.name, ''::name), 'PUBLIC'::name) AS grantee,"substring"((
2020-09-09 10:11:48 377
原创 心态好的人,都有这5种生活方式
一是,保持乐观。 生活过的是心情,人生活的是心态。人生宝贵,与其在繁杂琐事上忧心过甚,不如善待自己放松生活。 有人说,“生活中的10%是由发生在你身上的事情组成,而另外的90%则是由你对所发生的事情如何反应所决定。” 遇到急事,先冷静三分钟,冲动时不要做任何决定;烦恼颇多时,先放过自己,不与生活较劲,也不跟自己较劲;保
2020-08-26 09:54:06 1488 1
原创 算法题:二叉树展开为链表
目录题目描述解题思路题目描述给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1\2\3\4\5\6解题思路我们需要两步完成这道题。 将左子树插入到右子树的地方 将原来的右子树接到左子树的最右边节点 考虑...
2020-08-10 09:47:07 233
原创 go语言实现二维码
以前写过一篇用java语言实现二维码,今天看到了用go语言实现二维码,发现简单了很多。文章目录go语言实现二维码生成二维码字节自定义二维码go语言实现二维码使用Go语言编程时,生成任意内容的二维码是非常方便的,因为我们有go-qrcode这个库。该库的源代码托管在github上,大家可以下载使用 https://github.com/skip2/go-qrcode。go get github.com/skip2/go-qrcode这个库的使用很简单,假如我要以我的博客网站地址https://bl
2020-08-07 09:46:32 677 1
原创 跟谁在一起,真的很重要
我们这一生,会遇到很多人:有的人正能量满满,有的人负能量不断;有的人像一道光照亮我们前行的路,有的人一和他接触就让人皱眉不已。 有句话说,一个人能走多远,要看他与谁同行。选择跟什么样的人在一起,就会拥有什么样的人生。 择友,人品第一。 听过这样一个故事:一个女孩和父母闹翻了,打电话给好友,希望能到好友那住一段时间。好友
2020-08-05 09:04:51 478
原创 八月,愿你生活不拥挤,笑容不刻意
刚刚结束的七月,对很多人来说是特别的。可能有人经历了命运的转折点,站在人生的十字路口;有人结束了学生时代,即将开始新的旅程…… 高考成绩公布,身边有人发挥失常,觉得心灰意冷。我知道,如果这个时候跟你说“努力了就好,别太在意结果”,这样的安慰显然苍白无力。因为很多时候,我们最在意的偏偏就是那个追逐了很久的结果。 但是,你知道吗?生命中其实有很多这样的时刻,你付出了不一
2020-08-02 09:30:13 5470 1
原创 怕什么路途遥远,进一步自有一步的欢喜
前几天,我们学校的小美老师获得了全市教学论文比赛优秀奖。开会时,校长专门点名表扬她,鼓励她继续努力。小美红着脸连声道谢,看起来很激动。 但在我们很多同事眼里,好像有点不以为然。入职好几年了,就获得这么一个小奖,跟其他硕果累累的老师相比,感觉真算不上什么。 没想到,会议结束后,小美竟还特意准备了糖果分给我们,说要和大家一起分享得奖的快乐。她说,“我知道自己天赋不高,文
2020-07-31 09:15:04 329
原创 我也曾怀疑过坚持的意义
有一天,我在一位学生的朋友圈里看到一句话:“坚持是最没意义的。”这让我想到一些不高兴的过去,因为我也曾在挫败时这么想过。于是我私信问她怎么了,她抱怨说:“因为考研失败。我都坚持一年了,怎么才考这么点分……” 她的目标是一所艺术院校,文化课过线分并不算高,只要足够努力,不会过不去。我在心里打了个问号,我怀疑一个坚持一年、每天学习英语的同学,怎么可能只考了三十多分。我多年的教学经验告诉我,这件事应该有“猫腻”,于是,
2020-07-30 10:17:28 370
原创 算法题:卖股票,求最大利润
题目描述给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例 1:输入: prices = [1, 3, 2, 8, 4, 9], fee = 2 输出: 8 解释: 能够达到的最大利润:在此处
2020-07-30 09:45:26 1029
原创 算法题:三数之和为0
题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2] ]思路这道题是典型的双指针应用,双指针和此题的面试出镜率都很高,建议掌握!这道题的算法思路如下:特殊判断,对于数组长度 n,如果数组
2020-07-29 09:58:12 1484
原创 算法题:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 著作权归领扣
2020-07-28 09:33:38 1588
原创 Go工具之generate
Go语言提供了一系列强大的工具,灵活使用这些工具,能够让我们的项目开发更加容易,工具集包含如下。bug start a bug reportbuild compile packages and dependenciesclean remove object files and cached filesdoc show documentation for package or symbolenv print Go environ
2020-06-26 09:54:29 2646
原创 算法题:滑动窗口----- 颜色分类
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。你能想出一个仅使用常数空间的一趟扫描
2020-06-15 09:43:15 271
原创 你知道几种Go并发控制方式?
文章目录引言WaitGroupChannelContext总结文献引言Golang中通过go关键字就可开启一个goroutine,因此,在Go中可以轻松写出并发代码。但是,如何对这些并发执行的groutines有效地控制?提到并发控制,很多人可能最先想到的是锁。Golang中同样提供了锁的相关机制,包括互斥锁sync.Mutex,和读写锁sync.RWMutex。除了锁,还有原子操作sync/atomic等。但是,这些机制关注的重点是goroutines的并发数据安全性。而本文想讨论的是gorouti
2020-06-08 08:44:33 1622
原创 你还在用官方的error库么,那就弱爆了
在一个项目中,你是否还在为出现error在哪里,定位error而苦恼?你是否还在为error中的信息太少而苦恼;那么我告诉你,本文会介绍给你一个非常好用的error库,让你追查error起来不再痛苦。我们今天的结构分为四个部分:介绍演示源码解说总结介绍其实我们可以思考一下,我们在一个项目中使用错误机制,最核心的几个需求是什么?1 附加信息:我们希望错误出现的时候能附带一些描述性的错误信息,甚至于这些信息是可以嵌套的。2 附加堆栈:我们希望错误不仅仅打印出错误信息,也能打印出这个错误的堆栈信
2020-06-03 09:38:56 720 1
TA创建的收藏夹 TA关注的收藏夹
TA关注的人