每周一道算法、点评一篇英文技术文章、学习一个技术技巧、分享一个技术观点和思路

Algorithm

题目:两数和

给定一个整数数组,返回这两个数字的索引,使它们相加为一个指定的数。

因为是返回两个数字的索引,所以不能对数组排序。就算排序也要保留原始的索引。

思路 1

两层循环

1
2
3
4
5
6
7
8
9
10
11
12
class  {
public int[] twoSum(int[] nums, int target) {
for(int i = 0; i < nums.length; i++){
for(int j = i + 1; j < nums.length; j++){
if(nums[i] == target - nums[j]){
return new int[]{i,j};
}
}
}
throw new RuntimeException("not found");
}
}

beats 26.64%

思路 2

使用 HashMap,空间换时间

1
2
3
4
5
6
7
8
9
10
11
12
class  {
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer> map = new HashMap(nums.length);
for(int i=0;i<nums.length;i++){
if(map.containsKey(target-nums[i])){
return new int[]{map.get(target-nums[i]),i};
}
map.put(nums[i],i);
}
大专栏  ARTS 第 1 周word">throw new RuntimeException("not found");
}
}

beats 99.70%

Review

The Key To Accelerating Your Coding Skills

在学习编程的过程中,从某个时间点开始会觉得“顿悟了”,把这个时间点称为拐点。

首先是教程阶段(3~8 周严格地编码),在此阶段应该注重细节,从错误信息中学习总结。认识到编程无法一蹴而就,是需要长期持续学习的。

其次是拐点阶段(正确心态的2-4周),在此阶段会发现你的编码效率提高了 10~20 倍。但是,不要满足,永远保持空杯心态,坚持每天进步一点点。重视基础,学习算法和数据结构。

最后通过拐点,不再一味追求新的技术,能看透新技术的本质。能根据已学得知识来学习新的技术。积累自己的代码库。

如何判断是否通过了拐点?其实就是心态的改变。接受软件开发是一个不断学习的过程。接受不断的学习是为了解决更复杂的问题。

Tip

本周分享一个 Spring Boot 的注解 @Profile,它有什么用呢?

它可以标记在任何一个 @Component@Configuration@Bean 上,根据当前环境来决定是否加载。

举个例子,项目中使用到了 Swagger,只想在开发和测试环境使用。

1
2
3
4
5
6
7
8
2
@Configuration
@Profile("dev","test")
public class Swagger2 { }

spring.profiles.active=dev,test 时,Swagger 才能被访问。

还可以写成非生成环境 @Profile("!prod")

注意:在 @Bean 方法上使用 @Profile 时,可能会有一个特殊情况:对于具有相同 Java 方法名称的重载 @Bean 方法(类似于构造函数重载),必须在所有重载的方法上一致地声明 @Profile 条件。

Share

最近公司招聘 Java 开发,由我筛选简历,说说我个人从技术人员的角度来看面试机会更大的简历是什么样的。

  • 一份完整的简历。至少包括个人信息、工作经验、项目经验、技能
  • 完整的项目经验。包括项目简介、架构、使用技术、职责、成绩、收获。如果能展示则更好。
  • 技能。展示自己会的技术

加分项:

  • 入职过大厂
  • 个人博客
  • Github

注意事项:

  • 简历应该真实
  • 简历不写无足轻重的信息,突出重点。
  • 多读自己的简历,假想你是招聘人员,能从你的简历上获取到什么信息。

ARTS 第 1 周的更多相关文章

  1. ARTS第十周

     之前忘了发布 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享一篇有观点和思考的 ...

  2. ARTS第十一周

    受辞职考研和新冠肺炎疫情影响,一直没更.遗憾,数学和专业课再高点就有戏了.继续. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3. ...

  3. ARTS第八周

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

  4. ARTS第六周

    第六周.后期补完,太忙了. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至少一个技术技巧4.Share:分享一篇有 ...

  5. ARTS第五周

    -第五周.这两周在复习大学里的课程,发现当时觉得课上很多看不懂的,现在看起来轻松多了,也带来了新的感悟. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评 ...

  6. ARTS第三周

    第三周.上周欠下了 赶紧补上,糟糕了 还有第四篇也得加紧了 难受. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3.Tip:学习至 ...

  7. ARTS 第十周打卡

    Algorithm : 做一个 leetcode 的算法题 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: [&quo ...

  8. ARTS 第八周打卡

    Algorithm : 做一个 leetcode 的算法题 13. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符          数值 I         ...

  9. ARTS第七周打卡

    Algorithm : 做一个 leetcode 的算法题 ////////////////////////////////////////////////////////////////////// ...

随机推荐

  1. Java中Arrays详解

    一.Arrays类的定义 Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法 使用时导包:import java.util.Arrays 二.Arrays常用函数(都是静态的) ...

  2. 三十八、LNMP潮流组合搭建

    一.安装mysql 数据库 1.1  mysql数据库安装的三种方法: 1)编译安装,在lamp经典组合安装是5.1版本,是configure,make,make install,这里如果是5.5版本 ...

  3. python,PyAutoGUI,设置鼠标键盘自动操作

    三个文件需在同一个文件夹下面,文件夹的位置无要求. 1.第一个文件,trial.py.python代码调用PyAutoGUI操作鼠标键盘,可以通过修改start_time和end_time来确定程序自 ...

  4. mysql之左连接、右连接、内连接、全连接、等值连接、交叉连接等

    mysql中的各种jion的记录,以备用时查 1.等值连接和内连接, a.内连接与等值连接效果是相同的,执行效率也相同,只是书写方式不一样,内连接是由SQL 1999规则定的书写方式 比如: sele ...

  5. 苹果为啥不愿意替美国FBI解锁,这是一种创新态度?

    国外媒体报道,苹果计划对iPhone进行安全更新,最新版的iOS会在手机锁定一个小时后禁用手机充电和数据端口,这意味着,消费者丢失手机或者非正常离开iPhone之后,可以通过锁定手机,来避免手机数据被 ...

  6. 好久不见,Java设计模式

    引子 设计模式是很多程序员总结出来的最佳实践.曾经在刚开始写项目的时候学习过设计模式,在开发过程中,也主动或者被动的使用过.现在写代码虽说不会特意明确在用哪种设计模式,但潜移默化的写出来公认的最佳实践 ...

  7. php通过身份证判断性别

    /** 已测试,百度很多写法不行的 * 1就是男性 2就是女性* 通过身份证获取性别类型* @param type $card* @return int*/function getCardSex($i ...

  8. 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”

    为了解答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”这个问题,也为了能够便于大家对正则表达式有一个更为综合和深刻的认识,我将一些关键点和容易犯糊涂的地方再系统 ...

  9. 压缩感知与稀疏模型——Convex Methods for Sparse Signal Recovery

    第三节课的内容.这节课上课到半截困了睡着了,看着大家都很积极请教认真听讲,感觉很惭愧.周末不能熬太晚.这个博客就记录一下醒着时候听到的内容. Motivation 目前的时代需要处理的数据量维度可能很 ...

  10. 吴裕雄--天生自然 HADOOP大数据分布式处理:安装配置JAVA

    tar -xzvf jdk-8u151-linux-x64.tar.gz -C /usr/local/src sudo vim /etc/profile .编辑/etc/profile # JAVA ...