左耳听风ARTS第1周
20190317开始参加ARTS的项目,希望自己可以坚持下去。
每周完成一个ARTS
Algorithm、Review、Tip、Share
1、每周至少做一个leetcode的算法题, (给自己的目标是要分析时间复杂度)
2、阅读并点评至少一篇英文技术文章
3、学习至少一个技术技巧
4、分享一篇有观点和思考的技术文章
Week 1:
Algorithm
记得自己几年前刷过一些题, 但是没能坚持下来。 这次重新来刷题, 感触很深。
先找了一个最简单的刷
1. 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.
Example:
Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
原来碰到这样的问题不自然的就想到了嵌套循环,于是就写出了如下的程序:
class Solution {
public int[] twoSum(int[] nums, int target) {
for (int i=0; i<nums.length-1; i++){
for (int j = i+1; j<nums.length; j++){
if (nums[i]+nums[j] == target){
int[] result = new int[2];
result[0] = i;
result[1] = j;
return result;
}
}
}
return null;
}
}
通过查看leetcode上其他人的解决方案, 发现自己工作中经常用到的一个方法, 就是先循环放入map,然后再循环和map比较。自己这么用的时候很少考虑为什么这么用,这么用的好处是什么? 通过这个题目和大家的分析讨论, 才意识到这是时间复杂度的问题。
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i=0; i<nums.length-1; i++){
map.put(nums[i], i);
}
for (int j = 0; j<nums.length; j++){
int com = target-nums[j];
if (map.containsKey(com) && map.get(com) != j){
return new int[] { j, map.get(com) };
}
}
return null;
}
}
Review:
由于目前在用nightwatchjs做端到端的前端自动化测试, nightwatch国内资料比较少, 所以只有阅读期官网的文档, 但是对于Working with Page Object , 版本由v0.9.21 升级到v1.0.19之后之前的功能有几处改动, 首先定义了页面文件的路径之后, 在其下只能建立一级子文件夹, 二级就找不到, 于是去github上用自己蹩脚的英语去提issue。 作者把这标记为bug了。(很激动)
https://github.com/nightwatchjs/nightwatch/issues
Tip
说来惭愧,工作这么久, 居然很少看源码, 最近才开始看java的源码, 了解了java8的新特性,细节了解了ArrayList的自动扩容给自己的目标今年要了解java、spring 源码。
Share:
前端自动化测试HTML5的CAVAS。 我们的应用是往canvas上放置元素, 但是无法具体定位到canvas上存在什么元素, 于是就用了图像对比的方式, 使用node-resemble-js 第三方的库, 在运行的时候截取图片和基准库中的图片做相似度比较, 给出一个容忍百分比。
第一次打卡不知道如何写起, 希望自己贵在坚持, 越来越好!
左耳听风ARTS第1周相关推荐
- 左耳听风ARTS第2周
左耳朵耗子专栏<左耳听风> 用户自发每周完成一个ARTS: 1.Algorithm:每周至少做一个 leetcode 的算法题 2.Review:阅读并点评至少一篇英文技术文章 3.Tip ...
- 左耳听风 第三十三周
左耳听风 第三十三周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...
- 左耳听风 第三十一周
左耳听风 第三十一周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...
- 左耳听风 第二十二周
左耳听风 第二十二周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...
- 左耳听风 第二十八周
左耳听风 第二十八周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...
- 左耳听风 第二十九周
左耳听风 第二十九周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...
- Dimple在左耳听风 ARTS打卡(第四期)
打卡给人的感觉就是每周都有一个压力在身上,有无数双眼睛盯着你,看着你,鼓励着你,激励着你,你想不去做,就会有负罪感.这都还是被动的学习,等到真正的领悟到主动学习,那打卡,就只是一个形式罢了.我打卡,我 ...
- 左耳听风 第二十一周
左耳听风 第二十一周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...
- 《左耳听风》-ARTS-打卡记录-第二十五周
<左耳听风>-ARTS-打卡记录-第25周 坚持不懈是一句正确的废话.前段时间,我在我的读者群中发起了一个名为 ARTS 的活动.每人每周写一个 ARTS:Algorithm 是一道算法题 ...
最新文章
- js获取URL请求参数与改变src
- 文件系统raw什么意思oracle,raw扫盲
- 输入一个数判断是否对称java_判断对称矩阵 - osc_4mawo3g6的个人空间 - OSCHINA - 中文开源技术交流社区...
- ModuleNotFoundError No module named urllib2
- HDU - 6297 CCPC直播
- Vue3动态路由与路由守卫
- c#(webapi)获取当前项目路径
- 教程:QuickTime 录屏的同时录制电脑中播放的声音,播放的歌曲等
- VirtualDub在处理WMV文件时显示“MISSING CODEC”怎么办
- Java实现PDF打印的解决方案
- mac电脑开机进入grub界面
- 网易云课堂web安全第一天
- bash shell 数组元素遍历操作 foreach
- 测试环境搭建-5:设备的驱动程序未被安装解决方法
- 操作系统精选习题——第二章
- Cocos2D开发的iPhone游戏的教程
- 华为服务器1u系列,1u服务器
- TF卡/SD卡/U盘容量“变小”的问题
- 内网ip 查 核心交换机 流量_局域网通过IP地址如何找到电脑的位置?
- 微信发红包功能的实现