zoukankan      html  css  js  c++  java
  • LeetCode 1.在数组中找出和为目标值的两个整数

    题目描述

    难度;简单

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

    你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9

    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    难度:简单

    暴力解法:两个for循环解决

    代码如下

    public class TwoSum {
         public int[] twoSum(int[] nums, int target) {
            int[] result=new int[2];
             for (int i = 0; i < nums.length; i++) {
                
                for (int j = i+1; j < nums.length; j++) {
                    result[0]=i;
                     int tmp=nums[i];
                     if (tmp+nums[j]==target) {
                        result[1]=j;
                        return result;
                    }
                }
                
                
            }
            return result;
                
            }
         public static void main(String[] args) {
            int[] nums=new int[] {3,2,4};
            TwoSum twoSum=new TwoSum();
            int[] result=twoSum.twoSum(nums, 6);
            System.out.println(result[0]+"--"+result[1]);
        }
    }

     解法二:利用哈希表来解

    代码如下

    Map<Integer, Integer> map=new HashMap<Integer, Integer>();
             for (int i = 0; i < nums.length; i++) {
                map.put(nums[i], i);
            }
            for (int i = 0; i < nums.length; i++) {
                int key=target-nums[i];
                if (map.containsKey(key)&&map.get(key)!=i) {
                    return new int[]{i,map.get(key)};
                }
                
            }
  • 相关阅读:
    smarty相关
    Log4Net五步走[转载]
    The Water Horse: Legend of the Deep
    网站内容都是重复的,一个一个的复制真麻烦
    EXT2学习笔记,转载
    改写的一首诗赋
    CheckBoxList多选,获得选中的值!
    去年受朋友委托办了4张卡
    粒细胞
    GridView合并表头与行的反思
  • 原文地址:https://www.cnblogs.com/Transkai/p/11785352.html
Copyright © 2011-2022 走看看