Algorithm
本周选择的算法题是:Find K Closest Elements。
规则
Given a sorted integer array arr
, two integers k
and x
, return the k
closest integers to x
in the array. The result should also be sorted in ascending order.
An integer a
is closer to x
than an integer b
if:
|a - x| < |b - x|
, or|a - x| == |b - x|
anda < b
Example 1:
Input: arr = [1,2,3,4,5], k = 4, x = 3
Output: [1,2,3,4]
Example 2:
Input: arr = [1,2,3,4,5], k = 4, x = -1
Output: [1,2,3,4]
Constraints:
1 <= k <= arr.length
1 <= arr.length <= 104
arr
is sorted in ascending order.-104 <= arr[i], x <= 104
Solution
impl Solution {
pub fn find_closest_elements(arr: Vec<i32>, k: i32, x: i32) -> Vec<i32> {
let k = k as usize;
if arr.len() == k { return arr; }
let (mut left, mut right) = (0, arr.len() - k);
while left < right {
let mid = (left + right) / 2;
if x - arr[mid] > arr[mid+k] - x {
left = mid + 1;
} else {
right = mid;
}
}
Vec::from(&arr[left..left+k])
}
}
Review
作者在这篇文章中介绍了架构多租户系统的方法,包含单租户与多租户的区别、数据管理的常见手段、多租户系统的优势(维护性、可扩张性)、用微服务设计多租户的具体方案等等,以及 Amazon、Google 的实践经验。
多租户是 SaaS 领域的典型产物,一般由上层服务 + 多租户系统构成完整的 SaaS 体系,对想要了解多租户系统的同学来说,这篇文章非常干货,值得一读。
Tip
Alacritty,一个跨平台、高性能,基于 OpenGL 的终端模拟器。
Share
企业文化的先行指标
Context not Control,几乎已经是企业文化的代名词了,它代表:
- 提高人才密度,高绩效人才带来的结果是非线性增加的
- 相信员工,要有足够的勇气,把员工看成是企业的主人翁,而不是把他们当成机器,机器会完成工作,而主人翁会竭尽所能帮助企业和团队获得成功
- 投身有意义的工作,赋予工作使命,简单的说就是内心深入的 Why,使命感是一种真切的个人体验,强调的是以成就为荣
- 提供高自由度的工作环境,增加企业透明度,让高质量人才做高质量的决策
代表企业有 Netflix 和 Google。
Netflix 认为现在流行的管理风格是希望决策是由离问题最近,且最了解问题的人来做, 指令不是单纯的上传下达,而是通过提供上下文,建立内部信息透明的机制来解决问题、做出决策,从而提高企业整体的运营效率。
Google 认为低自由度的工作环境不属于未来,命令导向式、低自由度的管理方式限制了员工的思考,员工不仅不愿意冒险,甚至还要取悦管理者,更别说开诚布公的探讨了,员工要在实现工作成果的前提下,还要接受内心的惶恐不安和焦躁愤恨,这种管理方式看似容易产生效益、需要耗费的精力较少,其实从团队整体看耗费的精力要多得多,因此要清除路障,鼓励团队。
大家都希望更敏捷、更高效、更协作和更有创造力,以此为公司构建面向未来的技术力、产品力。
但如何检验公司到底是什么样的文化呢?也许大家仅仅把文化当成了宣传口号,没有花时间去仔细思考与讨论?除了发布使营收快速增长的产品外(滞后指标),还需要先行指标来检验文化,以确定我们的文化是否符合期望。
企业文化的作用之一,当问员工如下问题,能得到一致的问答,并据此行动:
- 你的公司打算做什么
- 你打算如何实现这些目标
- 你更快地实现这些目标会带来哪些可接受的风险
- 当你必须权衡某些价值观时,哪些价值观优先
- 你的公司聘用、提拔或解雇有哪种行为的人
毕竟,只有让员工明白为什么在这工作,企业为社会/世界做了些什么,我们才能拥有长远而清晰的目标,有责任且有担当的行为。因此文化变得越来越重要,特别对于那些有着长远发展抱负的成长型企业来说。