什么是 ARTS?
- 算法(Algorithm): 每周至少一道 LeetCode 算法题,加强编程训练和算法学习
- 阅读(Review): 阅读并点评至少一篇英文技术文章,提高英文水平
- 技巧 (Tip):学习至少一个技术技巧,总结、归纳日常工作中遇到的知识点
- 分享(Share):分析一篇有观点和思考的技术文章,建立影响力,输出价值观
时间周期
2022 年 2月22日至2月28日
一:算法:
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
第一步:将数组输出为一个整数,加1
第二步:再将整数输出为一个数组
示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。
前置知识
- 数组的遍历(正向遍历和反向遍历)
代码
JavaScript 实现及其拓展资料
function plusOne (digits) {
// 初始的+1也当作是一个在个位的carry
let carry = 1;
for (let i = digits.length - 1; i > - 1; i--) {
if (carry) {
let sum = carry + digits[i];
digits[i] = sum % 10;
// 每次计算都会更新下一次需要用到的carry
carry = sum > 9 ? 1 : 0;
}
}
// 如果carry最后停留在1,说明有额外的一个长度,所有我们需要在首位添加一个1
if (carry === 1) {
digits.unshift(1);
}
return digits
}
Java 实现及其拓展资料
class Solution {
public int[] plusOne(int[] digits) {
int n = digits.length;
for (int i = n - 1; i >= 0; --i) {
if (digits[i] != 9) {
++digits[i];
for (int j = i + 1; j < n; ++j) {
digits[j] = 0;
}
return digits;
}
}
int[] ans = new int[n + 1];
ans[0] = 1;
return ans;
}
}
Go实现及其拓展资料
func plusOne(digits []int) []int {
n := len(digits)
for i := n - 1; i >=0; i-- {
if digits[i] != 9 {
digits[i]++
for j := i + 1; j < n; j++ {
digits[j] = 0
}
return digits
}
}
digits = make([]int, n+1)
digits[0] = 1
return digits
}
二:阅读,英文技术文章
how Netflix uses A/B tests to inform decisions and continuously innovate on our products
这是一个系列文章,第一篇链接如下:
https://netflixtechblog.com/decision-making-at-netflix-33065fa06481
三:技巧
撸起袖子,教你干一个前端监控系统
https://segmentfault.com/a/1190000012463862
- 这是受Netfix的系列文章启发,前端完全可以自己搞一套可视化监视系统,统计部署在互联网的产品,根据数据来进行优化
四:分享
- 成年人就是在工作中懂得为自己的成长负责,为工作的结果负责。
- 国内的很多企业,面临的问题还是“如何通过管理,让平凡人干出不平凡的事”
- 看其他公司的文化、做法,并不是要照搬学习,而是希望获得一些观点上的碰撞,然后吸纳一些适合自己公司的经验
网友评论