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周相关推荐

  1. 左耳听风ARTS第2周

    左耳朵耗子专栏<左耳听风> 用户自发每周完成一个ARTS: 1.Algorithm:每周至少做一个 leetcode 的算法题 2.Review:阅读并点评至少一篇英文技术文章 3.Tip ...

  2. 左耳听风 第三十三周

    左耳听风 第三十三周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...

  3. 左耳听风 第三十一周

    左耳听风 第三十一周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...

  4. 左耳听风 第二十二周

    左耳听风 第二十二周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...

  5. 左耳听风 第二十八周

    左耳听风 第二十八周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...

  6. 左耳听风 第二十九周

    左耳听风 第二十九周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...

  7. Dimple在左耳听风 ARTS打卡(第四期)

    打卡给人的感觉就是每周都有一个压力在身上,有无数双眼睛盯着你,看着你,鼓励着你,激励着你,你想不去做,就会有负罪感.这都还是被动的学习,等到真正的领悟到主动学习,那打卡,就只是一个形式罢了.我打卡,我 ...

  8. 左耳听风 第二十一周

    左耳听风 第二十一周 每周完成一个ARTS: 每周至少做一个 leetcode 的算法题.阅读并点评至少一篇英文技术文章.学习至少一个技术技巧.分享一篇有观点和思考的技术文章.(也就是 Algorit ...

  9. 《左耳听风》-ARTS-打卡记录-第二十五周

    <左耳听风>-ARTS-打卡记录-第25周 坚持不懈是一句正确的废话.前段时间,我在我的读者群中发起了一个名为 ARTS 的活动.每人每周写一个 ARTS:Algorithm 是一道算法题 ...

最新文章

  1. js获取URL请求参数与改变src
  2. 文件系统raw什么意思oracle,raw扫盲
  3. 输入一个数判断是否对称java_判断对称矩阵 - osc_4mawo3g6的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. ModuleNotFoundError No module named urllib2
  5. HDU - 6297 CCPC直播
  6. Vue3动态路由与路由守卫
  7. c#(webapi)获取当前项目路径
  8. 教程:QuickTime 录屏的同时录制电脑中播放的声音,播放的歌曲等
  9. VirtualDub在处理WMV文件时显示“MISSING CODEC”怎么办
  10. Java实现PDF打印的解决方案
  11. mac电脑开机进入grub界面
  12. 网易云课堂web安全第一天
  13. bash shell 数组元素遍历操作 foreach
  14. 测试环境搭建-5:设备的驱动程序未被安装解决方法
  15. 操作系统精选习题——第二章
  16. Cocos2D开发的iPhone游戏的教程
  17. 华为服务器1u系列,1u服务器
  18. TF卡/SD卡/U盘容量“变小”的问题
  19. 内网ip 查 核心交换机 流量_局域网通过IP地址如何找到电脑的位置?
  20. 微信发红包功能的实现

热门文章

  1. Input搜索框与搜索图标对齐解决方法
  2. 二三四五再被监管点名:弹窗过多过频过大,上半年业绩下滑约七成
  3. 拟牛顿法 java_拟牛顿法 分析与推导
  4. 【软件构造】课件精译(三)软件生命周期与配置管理
  5. 在使用 NModBus 开发Modbus协议数据时对待无符号16整形的问题(UShort转Short)
  6. (讲解)用java实现简单选择排序
  7. JSON字符串转List集合操作
  8. java 挡泥板_VIN原厂配置查询
  9. 【软件工程】七、软件系统设计
  10. 【Hive】函数(UDF篇)