每周一道算法、点评一篇英文技术文章、学习一个技术技巧、分享一个技术观点和思路
Algorithm
题目:两数和
给定一个整数数组,返回这两个数字的索引,使它们相加为一个指定的数。
因为是返回两个数字的索引,所以不能对数组排序。就算排序也要保留原始的索引。
思路 1
两层循环
1 | class { |
beats 26.64%
思路 2
使用 HashMap
,空间换时间
1 | class { |
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 |
当 spring.profiles.active=dev,test
时,Swagger 才能被访问。
还可以写成非生成环境 @Profile("!prod")
注意:在 @Bean
方法上使用 @Profile
时,可能会有一个特殊情况:对于具有相同 Java 方法名称的重载 @Bean
方法(类似于构造函数重载),必须在所有重载的方法上一致地声明 @Profile
条件。
Share
最近公司招聘 Java 开发,由我筛选简历,说说我个人从技术人员的角度来看面试机会更大的简历是什么样的。
- 一份完整的简历。至少包括个人信息、工作经验、项目经验、技能
- 完整的项目经验。包括项目简介、架构、使用技术、职责、成绩、收获。如果能展示则更好。
- 技能。展示自己会的技术
加分项:
- 入职过大厂
- 个人博客
- Github
注意事项:
- 简历应该真实
- 简历不写无足轻重的信息,突出重点。
- 多读自己的简历,假想你是招聘人员,能从你的简历上获取到什么信息。