ARTS-for-week7-20181130

2024-08-27 01:48
文章标签 arts week7 20181130

本文主要是介绍ARTS-for-week7-20181130,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阅读文本大概需要 8 分钟。

每周完成一个ARTS:
每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)

ps:由于公众号不支持添加外链,所以大家遇到有链接的地方滑到文章最下面点击阅读原文就可以访问了哈,如果觉得文章不错,欢迎分享给周围的朋友们哈

又到周末啦,大家该吃吃该喝喝该玩玩,同时也不要抽点时间忘了学习哦。

下面更新 ARTS 第七周的内容。

1.Algorithm

LeetCode 35. Search Insert Position 链接 难度:[Eazy]

【题意】

Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You may assume no duplicates in the array.

Example 1:

1
2
Input: [1,3,5,6], 5
Output: 2

Example 2:

1
2
Input: [1,3,5,6], 2
Output: 1

Example 3:

1
2
Input: [1,3,5,6], 7
Output: 4

Example 4:

1
2
Input: [1,3,5,6], 0
Output: 0

【思路】

这道题不是很难,比较简单,提供两种方法,一种是直接循环原数组判断,时间复杂度O(n),一种是用二分查找,时间复杂度是O(logn)。

【参考代码】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
public://o(n)/*int searchInsert(vector<int>& nums, int target) {register int i;for(i=0; i<nums.size() && nums[i]<target; i++);return i;}*///o(logn)int searchInsert(vector<int>& nums,int target){int low=0,high=nums.size()-1,mid=0;while(low<=high){mid = low + (high-low)/2;if(nums[mid] < target){low=mid+1;}else {high=mid-1;}}return low;}
};

2.Review

十大GitHub最佳实践(英文)

本文作者在扫描了数千个存储库并访问了数百个客户之后,创建了一个常用最佳实践列表,在文章的最后,作者强烈建议我们在每个现代软件开发组织中采用这些最佳实践。下面我们来看看这十大最佳实践具体的内容。

  1. 按照 gitflow 工作流的方式工作,保护主分支防止直接提交。

  2. 避免提交者无法识别身份,确认提交者有明确的身份。

  3. 最好提交前定义好 codeowner,提交需要 code review。

  4. 一定不要把秘钥提交到代码中,使用 Valut 或者 AWS Secrets Manager等工具进行管理。

  5. 避免将依赖项提交到项目中,从而减小库的大小。

  6. 从源代码中分离配置文件之后,这些信息应当保留在本地环境。

  7. 建立有意义的 .gitignore 文件,可以从 Gitignore.io 选择相关模版。

  8. 不维护的库改成 只读模式。指定依赖包的版本,从而防止使用 latest 版本导致升级后不可用。

  9. 清单文件包含有关所有软件包版本的信息,以便在每次安装应用程序依赖项时不会破坏代码的情况下保持一致的结果( 最佳做法是使用清单锁定文件以避免任何差异,并确认每次都获得相同的软件包版本)。

  10. 如果有一个在多个项目中使用的包,请至少尝试在不同的存储库中使用相同的主要版本(虽然使用的是相同的软件包,但不同的版本分发将使在各种项目中重用代码和测试变得更加困难)。

个人 review:都说习惯养成不容易,但是一旦养成了一个好习惯,我们在提交代码,提交项目的时候就会更加有规范,有效率。希望我们不管在平时的生活还是工作当中都能慢一些,不那么急躁,细心一点,养成一个好习惯,后面的好处肯定会持续的积累。

3.Tip

这几天刚好在整理一些之前学过的常用的 Linux 命令。

关于 crontab 命令的用法,发现还是蛮多的,蛮实用的,总结常用的用法如下。

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行
如何往 cron 中添加一个作业?

$ crontab –e
0 5 * /root/bin/backup.sh

这将会在每天早上5点运行 /root/bin/backup.sh

Cron 各项的描述

以下是 crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 区间为 0 – 59
o hour: 区间为0 – 23
o day-of-month: 区间为0 – 31
o month: 区间为1 – 12. 1 是1月.12是12月.
o Day-of-week: 区间为0 – 7. 周日可以是0或7.

Crontab 示例

  1. 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。

1 0 * /root/bin/backup.sh

  1. 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。

59 11 1,2,3,4,5 /root/bin/backup.sh

下面例子与上面的例子效果一样:

59 11 1-5 /root/bin/backup.sh

2.每5分钟运行一次命令

/5 * /root/bin/check-status.sh

3.每个月的第一天 1:10 p.m 运行

10 13 1 /root/bin/full-backup.sh

4.每个工作日 11 p.m 运行。

0 23 1-5 /root/bin/incremental-backup.sh

Crontab 选项

以下是 crontab 的有效选项:

o crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。
o crontab –l : 显示 crontab 文件。
o crontab -r : 删除 crontab 文件。
o crontab -ir : 删除 crontab 文件前提醒用户。

以上就是crontab命令的具体使用方法了。

4.Share

商汤公司正在帮助建立中国的全景监控。(英文)

商汤对政府工作和日常监控的接受与硅谷目前的基调形成鲜明对比。 今年早些时候,愤怒的 Google员工联名抗议他们的雇主放弃五角大楼项目,并承诺避免使用人工智能打击人类战争的自主武器,微软和 Salesforce.com 的工作人员抨击与联邦机构的合同,亚马逊的员工抗议向警察部队出售面部识别装备。 (据报道,亚马逊向美国移民局提出了这些工具。)

看看我们中国的高科技企业,“我们只想赚钱”,不得不说,这应该对比很明显,在中国,高科技公司不得不在企业的政策扶持下和特殊利益下生存。

推荐阅读

记一次大佬直播精华总结

ARTS-for-week6-20181124

爱学习,爱技术

这篇关于ARTS-for-week7-20181130的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110293

相关文章

ARTS-for-week9-20181214

阅读文本大概需要 10 分钟。 每周完成一个ARTS: Algorithm 来源 LeetCode 5.Longest Palindromic Substring Review 阅读了 Medium 上的一篇关于学习的文章 Tip 总结自己在台式机安装中标麒麟 V5 操作系统以及配置 Qt 环境的一些注意事项 Share 分享一篇关于 ZIP 压缩算法详细分析及解压实例解释 ps:由于公

ARTS-for-week8-20181207

阅读文本大概需要 17 分钟。 每周完成一个ARTS:本周的 Algorithm 来源 LeetCode 3. Longest Substring Without Repeating Characters 本次 Review 阅读了 Medium 上的一篇关于面向对象编程的文章 Tip 自己折腾的 Ubuntu14.04 更新原装系统的 Python2.7 版本到 Python3.6 Sha

ARTS-for-week6-20181124

阅读文本大概需要 12 分钟。 每周完成一个ARTS:每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS) ps:由于公众号不支持添加外链,所以大家遇到有链接的地方滑到文章最下面点击阅读原文就可以访问了哈,如果觉得文章不错,欢迎分享给

ARTS-for-week4-20181109

每周完成一个ARTS:每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS) 第四周了,哇咔咔。时间过得好快^_^由于微信不支持添加外链,所以大家访问有链接的地方直接滑到文章最底部点击阅读原文就可以访问了^_^ 一  Algorithm

ARTS Tip5 数据结构基本概念

数据结构的研究内容: 研究数据元素之间的逻辑结构研究数据在计算机内部的存储结构研究如何在数据的逻辑结构和存储结构中实施有效的操作和处理 数据结构中数据之间的关系分为: 线性关系非线性关系(非线性关系又分为:树关系和图关系) 数据之间的结构分为: 逻辑结构:体现数据元素之间的逻辑关系 存储结构(物理结构):数据在计算机内的表示,包含数据元素的表示和关系的表示。 存储结构又可以分为:

ARTS Review6 IPv4和IPv6地址解剖

原文链接:https://medium.com/@josephcardillo/a-beginners-guide-to-ipv4-and-ipv6-anatomy-fcc9444b0d4d 这篇文章,作者主要剖析了IPv4和IPv6地址的区别: IPv在IPv4和IPv6中代表什么? 代表网络协议版本。 为什么不存在IPv1, IPv2, IPv3 and IPv5? 因为IPv4是第

ARTS Review7 编写可测试代码

原文链接:https://medium.com/feedzaitech/writing-testable-code-b3201d4538eb 这篇文章,作者主要讲了如何编写可测试的代码,一般人不愿意测试,是因为代码之间的耦合度太高,所以我们可以学习编写低耦合的代码,来方便我们开发项目。 编写可测试的代码需要遵循下面的一些原则和指导路线: SOLID design principles Si

ARTS leetcode7 Merge Two Sorted Lists

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.Example:Input: 1->2->4, 1->3->4Output: 1->1->2->3->4->4

ARTS Share5 Java数组

数组: 在Java中,数组是用来存储一组数据类型相同的变量的值,这些变量共用一个变量名。Java中的数组可以是一维数组也可以是多维数组,其中一维数组使用的频率比较高。 一维数组: 一维数组的声明: type array-name[] = new type[size];或者type[] array-name = new type[size]; type :表示数组的数据类型 array-n

ARTS Share4 mysql中autocommit

MySQL中的事务(自动提交,显示和隐式),在MySQL中事务控制数据操作语句以确保它们是原子的。什么叫做原子的,也就是说这个事务要么成功,要么失败。 什么时候算事务成功或者失败? 当向数据库事务发送commit命令的时候,说明事务提交成功;相反,如果向数据库事务发送rollback命令,那么就说明此次的事务提交失败,所有执行过的SQL,数据会进行回滚到最初的状态。 当对数据库数据进行修改的