当前位置:网站首页>ARTS_202207W2
ARTS_202207W2
2022-08-01 19:41:00 【cswh】
ARTS 第 3 周
每周完成一个ARTS:
Algorithm:每周做一个 leetcode 的算法题
Review:阅读并点评写作一篇英文技术文章
Tip:学习至少一个技术技巧
Share:分享一篇有观点和思考的技术文章。
Table of Contents
- Algorithm 两数相加
- Review 泛硅谷公司相比传统公司更善用软件工程师
- Tip 截图工具snipaste
- Share 分享博客
Algorithm
leetcode2.两数相加
题目描述:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
输入:l1 = 2,4,3, l2 = 5,6,4
输出:7,0,8
解释:342 + 465 = 807
package com.haowang.leetcode;
import com.haowang.TestUtils.UseCase_LinkedList.ListNode;
public class 两数相加_2 {
public static void main(String[] args) {
ListNode l1 = UseCase_LinkedList.createLinkedList(new int[]{2, 4, 3});
ListNode l2 = UseCase_LinkedList.createLinkedList(new int[]{5,6,4});
ListNode sum_ListNode = addTwoNumbers(l1, l2);
UseCase_LinkedList.printLinkedList(sum_ListNode);
ListNode l1_2 = UseCase_LinkedList.createLinkedList(new int[]{9,9,9,9,9,9,9});
ListNode l2_2 = UseCase_LinkedList.createLinkedList(new int[]{9,9,9,9});
ListNode sum_ListNode_2 = addTwoNumbers(l1_2, l2_2);
UseCase_LinkedList.printLinkedList(sum_ListNode_2);
}
public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode head = null, tail = null;
int carry = 0;
while (l1 != null || l2 != null) {
int n1 = l1 != null ? l1.val : 0;
int n2 = l2 != null ? l2.val : 0;
int sum = n1 + n2 + carry;
if (head == null) {
head = tail = new ListNode(sum % 10);
} else {
tail.next = new ListNode(sum % 10);
tail = tail.next;
}
carry = sum / 10;
if (l1 != null) {
l1 = l1.next;
}
if (l2 != null) {
l2 = l2.next;
}
}
if (carry > 0) {
tail.next = new ListNode(carry);
}
return head;
}
}
为了方便本地IDEA调试,参考了一些资料,可通过方法createLinkedList()本地生成链表结构,printLinkedList()打印链表。详情可见LeetCode构建链表和树的测试用例
Review
文章主题为“泛硅谷公司相对于传统公司更加善用软件工程师“。
原文:What Silicon Valley "Gets" about Software Engineers that Traditional Companies Do Not
泛硅谷公司获得了一些传统公司无法理解或无法在实践中应用的东西。这些实践上的差异,导致公司层面更快创新、工程师更专业的成长和更好的产出。反过来,泛硅谷公司可以支付更高的工资并从同一个人身上获得更多价值。
作者从几个方面,比较了泛硅谷公司与传统公司的差别:
1、软件工程师的自主权
泛硅谷公司传递上下文并赋予自主权,工程师解决业务问题,而不仅是完成分配的任务。
二、好奇的问题解决者,而不是没有想法的资源
传统公司倾向于让工程师一直坐在电脑前编码,充分利用时间。
泛硅谷公司认为软件工程师是最适合解决组织存在的问题的人,不仅仅是专业技能,还包括沟通和解决问题能力;让软件工程师接触业务,完成编码的同时为业务寻找更有影响力的机会。
三、内部数据、代码和文档透明度
四、接触业务和业务指标
泛硅谷公司鼓励工程师与其他业务部门进行互动,并在其他工程师之间建立关系。
五、工程师之间的三角沟通
六、投资于不那么令人沮丧的开发体验
泛硅谷公司改善开发人员工作体验。投资于代码周边事情,如依赖项、环境部署、CI/CD等
七、更高的杠杆-->更高的{自主权、报酬}
更高的自主权 --> 更高的杠杆率 --> 更高的价值创造 --> 更高的薪酬(同时公司仍然盈利)
最后,作者总结了两类公司最大的不同点:泛硅谷公司将工程师视为价值创作者和创造性问题解决者;而传统公司将他们视为工厂工人。("SV-like" companies think of engineers as value generators, and creative problem solvers. Traditional companies think of them as factory workers.“)。而创造性的问题解决者可以带来10倍的价值,给他们更多的报酬,给他们更多的自由是有意义的。
来源湾区日报第1368期上收录文章
Tip
win10上的一款截图软件snipaste,官网
Share
分享一个不错的博客:
湾区日报 https://wanqu.co/
边栏推荐
猜你喜欢
随机推荐
Pytorch模型训练实用教程学习笔记:二、模型的构建
58:第五章:开发admin管理服务:11:开发【管理员人脸登录,接口】;(未实测)(使用了阿里AI人脸识别)(演示了,使用RestTemplate实现接口调用接口;)
腾讯云主机安全 x 轻量应用服务器|强强联合主机安全普惠版重磅发布
【kali-信息收集】(1.6)服务的指纹识别:Nmap、Amap
ThreadLocal讲义
锐捷交换机基础配置
Greenplum Database Source Code Analysis - Analysis of Standby Master Operation Tools
经验共享|在线文档协作:企业文档处理的最佳选择
What should I do if the Win11 campus network cannot be connected?Win11 can't connect to campus network solution
17. Load balancing
数值矩阵的图形表示
网络不通?服务丢包?这篇 TCP 连接状态详解及故障排查,收好了~
openresty 动态黑白名单
Gradle系列——Gradle文件操作,Gradle依赖(基于Gradle文档7.5)day3-1
DAO开发教程【WEB3.0】
安装win32gui失败,解决问题
密码学的基础:X.690和对应的BER CER DER编码
百度无人驾驶商业化已“上路”
AcWing 797. 差分
Shell script topic (07): file from cfs to bos