LeetCode 0001

来源:互联网 发布:淘宝视频教程全集 编辑:程序博客网 时间:2024/06/13 16:29

原题链接

我的解法:

一开始是想着排序之后双指针,后来发现题目要求的是存储下标。就想着搞个struct存下标和内容,然后根据内容排序,再存下标。后来没有这么做,是因为觉得有点烦。直接暴力求解了,显然是可以的,只是效率有点不行。需要吐槽一句,这里没有给出范围,就很难受。

最佳答案的解法是搜一遍的hash table,就是边加边找有没有符合答案的

public int[] twoSum(int[] nums, int target) {    Map<Integer, Integer> map = new HashMap<>();    for (int i = 0; i < nums.length; i++) {        int complement = target - nums[i];        if (map.containsKey(complement)) {            return new int[] { map.get(complement), i };        }        map.put(nums[i], i);    }    throw new IllegalArgumentException("No two sum solution");}

我所说的最佳,是单从时间来看的。

原创粉丝点击