zoukankan      html  css  js  c++  java
  • 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.

    Example:

    Given nums = [2, 7, 11, 15], target = 9,
    
    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].
    第一种:暴力
    第二种:排序,然后找
    第三种:哈希表法

    java:第一遍将数字变为哈希表的key,第二遍直接找到哈希表中的key是否存在。
    public static int[] twoSum1(int[] nums, int target){
             //基于哈希表
            int j;
            int i;
            HashMap<Integer,Integer> mymap = new HashMap<Integer, Integer>();
            for( i = 0 ; i < nums.length ;i ++){
                mymap.put(nums[i],i);
            }
            for( i = 0 ; i < nums.length ; i++){
                j = target - nums[i];
    
                if(mymap.get(j)!=null && mymap.get(j)!=i){
                    int arr[] = new int[2];
                    arr[0] = i;
                    arr[1] = mymap.get(j);
                    return arr;
                }
            }
    
            return null;
        }

    java 更好的写法2:

    一边放入哈希表一边看是否已经存在答案

    int j;
            int i;
            int arr[] = new int[2];
            HashMap<Integer,Integer> mymap = new HashMap<Integer, Integer>();
            for( i = 0 ; i < nums.length ;i ++){
                if(mymap.containsKey(target - nums[i])){
                    arr[0] = i;
                    arr[1] = mymap.get(target - nums[i]);
                    return arr;
                }
                mymap.put(nums[i],i);
            }
    
    
            return null;
  • 相关阅读:
    详解Windows注册表分析取证
    逻辑漏洞简单的分析
    文件解析漏洞汇总
    aspcms 这个靶场。。。
    WebBug靶场基础篇 — 03
    WebBug靶场基础篇 — 02
    WebBug靶场介绍篇 — 01
    漏洞挖掘中的常见的源码泄露
    PHP对象Object的概念
    从史上八大MySQL事故中学到的经验
  • 原文地址:https://www.cnblogs.com/da-peng/p/8259503.html
Copyright © 2011-2022 走看看