ARTS-No.1

Algorithm

Two Sum

  • 解法一: 暴力循环

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

    执行耗时: 17ms, 内存消耗: 37.4MB

  • 解法二: 借助 map

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class Solution {
    public int[] twoSum(int[] nums, int target) {
    Map<Integer, Integer> map = new HashMap(nums.length);
    for (int i = 0; i < nums.length; i++) {
    Integer value = map.get(nums[i]);
    if (null != value) {
    return new int[]{value, i};
    }
    map.put(target - nums[i], i);
    }
    return null;
    }
    }

    执行耗时: 2ms, 内存消耗: 37.4MB

Review

How to think like a programmer — lessons in problem solving

文章介绍了一种解决问题的有效框架:

解决问题的框架

Tip

crossoverJie/blog.toolbox - 博客工具箱

因为之前使用的博客图床挂掉了, 所以选用这个工具批量替换了图床. 纯 Java 代码, 需要自定义的地方可以自己实现.

Share

分享一些自己喜欢的 Windows 软件: Windows 软件推荐

Seven wechat
扫码关注, 一起进步.
0%