一切从这里起始(左耳听风 ARTS 6号小组 week 1)

ARTS 具体要求:

1.每周至少做一个 leetcode 的算法题
2.阅读并点评至少一篇英文技术文章
3.学习至少一个技术技巧
4.分享一篇有观点和思考的技术文章

1、Algorithm

Two Sum

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

给定一个整数数组,其中2个值加起来等于一个特定的目标值,然后返回这2个值的索引。您可以假设每个输入都只有一个解决方案,并且不能两次使用相同的元素。

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

解法:使用hashmap 存放数组的值和对应索引的位置,然后遍历数组,遍历过程中,特定目标值减去当前遍历元素值,得到另外一个元素的值,然后检查这个元素值是否在map中,并检查他的索引位置是否跟当前遍历元素的索引是否相同。通过检查,则返回2个元素的索引位置。代码如下:
class Solution {        public int[] twoSum(int[] nums, int target) {

            Map<Integer, Integer> map = new HashMap<>();            for(int i=0;i< nums.length;i++){               map.put(nums[i],i);            }

            for(int i=0;i< nums.length;i++){                int elenent = target - nums[i];                if (map.containsKey(elenent)&&map.get(elenent)!=i){                    int j = map.get(elenent);                    return new int[] {i,j};                }

            }

            throw new IllegalArgumentException("no two num add up to target ");        }    }

2、Review 我的英文并不好,甚至可以说是poor了,仅仅能理解一些常见的词汇和句子。我也尝试去读一些英文的技术文章,发现不借助翻译工具的情况下很难完整理解作者的意思,因此在英文学习的路上还需要更多努力才对。第一周,这里分享一篇关于如何看英文技术文档的文章,大家一起共勉。https://www.jianshu.com/p/af7d39cac6b83、TIP在Linux 账户管理的过程中,有时候需要限定特定用户才可以su 到root 用户,下面是我处理的方法:

  比如说限定只允许 itoper账户 su 到 root

第一步:找出wheel group 的ID     grep wheel /etc/group;

第二步: grep wheel /etc/pam.d/su | grep auth  找出如图2行 去掉注释(注意:第一行注释的情况下,需要root密码,去掉注释就不需要root密码)

第三步:添加itoper 账户进 wheel 组  usermod -G groupID itoper

4、share

 做这行不知不觉也有2年了,回过头来审视自己,发现什么都没有留下痕迹,没有写过什么可以拿出手的技术文章,顶多记下一些笔记,或者公司内部的一些指引、说明。用大佬的话说就是被动学习,一直在追求某项技术怎么用,却从没有认真考虑过为什么这么用,这样用有什么好处。回顾之前种种,当引以为戒,不断充实自己,努力前行。

打卡第一周,做的并不够好,希望自己更加努力,越来越好,大家一起努力,加油!

原文地址:https://www.cnblogs.com/yiluozhiren/p/10999281.html

时间: 2024-11-06 07:14:46

一切从这里起始(左耳听风 ARTS 6号小组 week 1)的相关文章

左耳听风 ARTS Week 002

要求:1.每周至少做一个 leetcode 的算法题 2.阅读并点评至少一篇英文技术文章 3.学习至少一个技术技巧 4.分享一篇有观点和思考的技术文章 1.每周至少做一个 leetcode 的算法题 算法题:20.有效括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认为是有效字符串. 示例 1: 输入: "()" 输出: true

极客时间-左耳听风-程序员攻略-软件设计

程序员练级攻略:软件设计 编程范式 学习编程范式可以让你明白编程的本质和各种语言的编程方式.因此,我推荐以下一些资料,以帮助你系统化地学习和理解. 极客时间的<编程范式游记>系列文章,目录如下. 编程范式游记(1)- 起源 编程范式游记(2)- 泛型编程 编程范式游记(3)- 类型系统和泛型的本质 编程范式游记(4)- 函数式编程 编程范式游记(5)- 修饰器模式 编程范式游记(6)- 面向对象编程 编程范式游记(7)- 基于原型的编程范式 编程范式游记(8)- Go 语言的委托模式 编程范式

左耳听风

主动学习与被动学习 你听别人讲,或是自己看书,或是让别人演示给你,这些都不能让你真正获得学习能力,因为你是在被别人灌输,在听别人说. 只有你开始自己思考,开始自己总结和归纳,开始找人交流讨论,开始践行,并开始对外输出,你才会掌握到真正的学习能力. 学习不是努力读更多的书,盲目追求阅读的速度和数量,这会让人产生低层次的勤奋和成长的感觉,这只是在使蛮力.要思辨,要践行,要总结和归纳,否则,你只是在机械地重复某件事,而不会有质的成长的. 深度学习十分重要 应该怎样进行深度学习呢?下面几点是关键. 高质

【技术思路】极客时间-左耳听风-开篇词2

07 | 推荐阅读:每个程序员都该知道的知识 每个程序员都应该要读的书 https://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read <代码大全> <程序员修练之道> <计算机的构造和解释> <算法导论> <设计模式> <重构> <人月神话> <代码整洁之道&

极客时间-左耳听风-程序员攻略开篇-零基础启蒙

入门教程 Python基础: 与孩子一起学编程:以 Python 语言教你如何写程序 https://book.douban.com/subject/5338024/ 在线编程网址 Codecademy: Learn Python https://www.codecademy.com/learn People Can Program https://www.peoplecanprogram.com/ 在线练习 CodeAbbey http://www.codeabbey.com/index/ta

左耳听风-ARTS-第4周(2019/4/21-2019/4/27)

Algorithm 本周的算法题是删除已排序数据中的重复数字(https://leetcode.com/problems/remove-duplicates-from-sorted-array/).这道题比较简单,基本思路是从开头比较,遇到不同的数字,就进行替换 public static int removeDuplicates(int[] nums) { if (nums == null || nums.length == 0) { return 0; } int i = 0; for (i

极客时间-左耳听风-程序员攻略-Java底层知识

Java 字节码相关 字节码编程,也就是动态修改或是动态生成 Java 字节码.Java 的字节码相当于汇编,其中的一些细节. Java Zone: Introduction to Java Bytecode ,这篇文章图文并茂地讲述了 Java 字节码的一些细节. IBM DeveloperWorks: Java bytecode ,讲 Java 字节码的文章. Java Bytecode and JVMTI Examples,这是一些使用 JVM Tool Interface 操作字节码的比

极客时间-左耳听风-程序员攻略-分布式架构入门

分布式系统涵盖的面非常广,具体来说涵盖如下几方面: 服务调度,涉及服务发现.配置管理.弹性伸缩.故障恢复等. 资源调度,涉及对底层资源的调度使用,如计算资源.网络资源和存储资源等. 流量调度,涉及路由.负载均衡.流控.熔断等. 数据调度,涉及数据复本.数据一致性.分布式事务.分库.分表等. 容错处理,涉及隔离.幂等.重试.业务补偿.异步.降级等. 自动化运维,涉及持续集成.持续部署.全栈监控.调用链跟踪等. 所有这些形成了分布式架构的整体复杂度,也造就了分布式系统中的很多很多论文.图书以及很多很

左耳听风-ARTS-第9周(2019/06/02-2019/06/08)

Algorithm 这周的算法题是plus one(https://leetcode.com/problems/plus-one/). public int[] plusOne(int[] digits) { int i = digits.length - 1; while (i >= 0) { if (digits[i] == 9) { if (i > 0) { digits[i] = 0; i--; } else { int[] target = new int[digits.length