ARTS
Algorithm 每周至少做一个 Leetcode 的算法题。主要是为了编程训练和学习。
Review 每周阅读并点评至少一篇英文技术文章。主要是为了学习英文。
Tip 每周学习至少一个技术技巧。主要是为了总结和归纳你在日常工作中所遇到的知识点。
Share 每周分享一篇有观点和思考的技术文章。主要是为了建立你的影响力,能够输出价值观。
Algorithm
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。
public static List<List<Integer>> threeSum2(int[] nums) {
List<List<Integer>> result = new LinkedList<>();
Arrays.sort(nums);
for (int i = 0; i < nums.length - 2; ) {
int j = i + 1;
int k = nums.length - 1;
while (j < k) {
if (nums[j] + nums[k] == -nums[i]) {
List<Integer> list = new ArrayList<>(3);
list.add(nums[i]);
list.add(nums[j]);
list.add(nums[k]);
result.add(list);
k--;
j++;
while (j < k && nums[j] == nums[j - 1]) {
j++;
}
while (j < k && nums[k] == nums[k + 1]) {
k--;
}
} else if (nums[j] + nums[k] > -nums[i]) {
k--;
while (j < k && nums[k] == nums[k + 1]) {
k--;
}
} else {
j++;
while (j < k && nums[j] == nums[j - 1]) {
j++;
}
}
}
i++;
while (i < nums.length - 2 && nums[i] == nums[i - 1]) {
i++;
}
}
return result;
}
复制代码
Review
docker-curriculum.com/#what-is-do…
- Docker是什么
Docker是一个工具,允许开发人员,系统管理员等将他们的应用程序部署在容器中,以便在主机操作系统(即Linux)上运行。Docker的主要优点是它允许用户将具有所有依赖关系的应用程序打包到容器中。容器开销小,能够更有效地使用底层系统和资源。 - 容器是什么
通过利用主机操作系统的底层机制,容器以一小部分计算能力提供大部分虚拟机的功能 - 为什么我们要使用容器
容器具有良好的可移植性。提供了一种打包机制,可以将应用程序实际运行环境中分离出来。无论系统环境是私有数据中心,公有云,还是个人笔记本电脑,都可以通过容器屏蔽操作系统层面的差异,使程序运行环境保持一致,并且可以在任何地方运行。 - 通过这个教程我们会学到什么
系统掌握Docke应用技术。在云上构建和部署自己的Web应用程序的实践经验。在云上使用docker部署静态网站和动态Web应用程序。
Tips:CentOS 7创建root权限用户并配置SSH
创建用户
参考链接:www.cnblogs.com/mylinux/p/5…
adduser tommy //添加一个名为tommy的用户
passwd tommy //修改密码
usermod -g root tommy //添加tommy用户到root用户组
复制代码
配置用户root权限
增加 sudoers
文件写权限
chmod +w /etc/sudoers
复制代码
编辑 sudoers
文件
vi /etc/sudoers
复制代码
增加
tommy ALL=(ALL) ALL
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tommy ALL=(ALL) ALL //增加账户root权限
复制代码
取消 sudoers
文件写权限
chmod -w /etc/sudoers
复制代码
配置ssh权限
vi /etc/ssh/sshd_config
复制代码
修改以下内容
PermitRootLogin no //阻止root用户登陆
AllowUsers sirius //允许制定用户使用SSH登陆
systemctl restart sshd
复制代码
解决登录之后,用户显示 -bash-4.2$
问题
cd /etc/skel/
cp .bash* /home/tommy
复制代码
Share
工作了有一段时间了,最近一直在思考,怎么样才算把技术用好了,怎么样才能让技术助力公司实现业务价值的最大化,而不是一味地堆新技术,堆新功能。产品和技术在一个公司发展的初期很重要,等公司发展到一定规模,运营的价值会凸显出来。所以技术的价值应该体现在两个方面:公司发展早期技术主要是帮助公司研发优秀的产品;公司业务发展到一定阶段,技术主要是产品迭代、研发新产品,帮助提高运营管理。