美文网首页
Leetcode 1 TwoSum -Java刷题

Leetcode 1 TwoSum -Java刷题

作者: Mereder | 来源:发表于2019-04-03 21:39 被阅读0次

Java hashmap的用法 类似于Python 里面的 dict 字典

先将 数组 进行 hashmap hash过程是O(N)的

再从 hashmap中寻找 目标值和另一个加数的差值

如果找到 且 index != i 则说明存在 TwoSum

算法复杂度 为O(n)

three sum 的问题 也是 类似这样求解,先对一个加数使用Hash
然后循环遍历另外两个加数 复杂度 降低到o(n^2)

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

相关文章

  • Leetcode 1 TwoSum -Java刷题

    Java hashmap的用法 类似于Python 里面的 dict 字典 先将 数组 进行 hashmap...

  • Leetcode 110 TwoSum -Java刷题

    题目描述 Given a binary tree, determine if it is height-balan...

  • Leetcode算法之旅之python TwoSum

    前言 平生不识TwoSum,刷尽LeetCode也枉然。欢迎开启LeetCode刷题的旅程,这将是一段漫长而又艰辛...

  • 模板解题 NSum

    LeetCode[https://leetcode-cn.com] 第一题就是很经典的题目: twoSum[htt...

  • Java 技术栈

    1、Java基础 Leetcode 刷题、Java 编程思想、JVM 原理、设计模式、Java 8 新特性 2、项目经验

  • TwoSum

    刷题当然要从TwoSum开始了~~python刷题果然容易~~~class Solution(object):de...

  • twoSum:找到和为target的2个数

    leetcode 1 var twoSum = function(nums, target) { let ...

  • java集合-ArrayList

    java集合-ArrayList 最近在使用java刷leetcode。在刷题期间,经常会用到java的集合类Ar...

  • 1.TwoSum

    第一次写东西记录刷题过程,希望能坚持下去~ 刷了第一题TwoSum,好长时间没接触Java了,都有些陌生了,Run...

  • [Leetcode]1.Two Sum

    今天看到某位大神的一句话,就作为开篇寄语吧。平生不识TwoSum,刷尽LeetCode也枉然。第一题是一道Easy...

网友评论

      本文标题:Leetcode 1 TwoSum -Java刷题

      本文链接:https://www.haomeiwen.com/subject/cxvtiqtx.html