不会飞的章鱼

熟能生巧,勤能补拙,静能生慧;念念不忘,必有回响。

如果在噩梦中睁眼

直面着残忍的世界

风拨动了谁的心弦

留恋却来不及告别

如果结局仅剩惨烈

阅读全文 »

题目描述

力扣_509. 斐波那契数

斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

1
2
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1

给你 n ,请计算 F(n) 。

阅读全文 »

秒杀系统架构设计都有哪些关键点

秒杀其实主要解决两个问题,一个是并发读,一个是并发写。

秒杀的整体架构可以概括为“稳、准、快”几个关键字。

所谓“稳”,就是整个系统架构要满足高可用,流量符合预期时肯定要稳定,就是超出预期时也同样不能掉链子,你要保证秒杀活动顺利完成,即秒杀商品顺利地卖出去,这个是最基本的前提。

所谓“准”,就是秒杀 10 台 iPhone,那就只能成交 10 台,多一台少一台都不行。一旦库存不对,那平台就要承担损失,所以“准”就是要求保证数据的一致性。

阅读全文 »

题目描述

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]。

进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
示例 1:
输入:nums = [5,7,7,8,8,10], target = 8
输出:[3,4]

示例 2:
输入:nums = [5,7,7,8,8,10], target = 6
输出:[-1,-1]

示例 3:
输入:nums = [], target = 0
输出:[-1,-1]
 

提示:
0 <= nums.length <= 105
-109 <= nums[i] <= 109
nums 是一个非递减数组
-109 <= target <= 109
阅读全文 »

题目描述

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
示例 1:
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:
输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1


提示:
你可以假设 nums 中的所有元素是不重复的。
n 将在 [1, 10000]之间。
nums 的每个元素都将在 [-9999, 9999]之间。

题目解析

中规中矩的一道专门考察二分查找的题目,直接上代码,注释写的很详细了。

阅读全文 »

golangci-lint 基本介绍

golangci-lint 是一个 Go linters 聚合器。

特征

⚡ 非常快:并行运行 linter,重用 Go 构建缓存并缓存分析结果。
⚙️ 基于 Yaml 的配置。
🖥 与 VS Code、Sublime Text、GoLand、GNU Emacs、Vim、Atom、GitHub Actions 的集成。
🥇 包含 48 个linters,无需安装。
📈 由于调整了默认设置,误报的最小数量。
🔥带有颜色、源代码行和标记标识符的漂亮输出。

golangci-lint 各配置项介绍

阅读全文 »

记得最开始看到这句话,是在《小时代1》中那个帅气的混血儿,因为拿错演讲稿,但依旧有条不紊的说了自己准备的planB开场白。

当时觉得不以为然,心想秘书都帮你安排好了,何必多此一举,现在想想,我真是天真啊…

感谢社会大学在这一周给我上了精彩的一课,为了等这一刻,你们估计也已经蓄谋很久了吧,没关系的,我心态很好,我有家人,有朋友,有一定的资源人脉,而你们也只能在这里继续啃食下一个天真的灵魂。

再一次,对这块天府之国上的企业感到失望,我不会哭,因为我要假装坚强,我不会气馁,因为打不死的会让我变的更强,我也不会随意的发牢骚,而是要在黑夜里坚持不懈的练拳头。

再见了,天真的自己。

阅读全文 »