zoukankan      html  css  js  c++  java
  • Two Sum

    1、题目

    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, and you may not use the same element twice.
    Example:
    Given nums = [2, 7, 11, 15], target = 9,
    Because nums[0] + nums[1] = 2 + 7 = 9,

    return [0, 1].

    2、求解一(O(n2))

     * @param nums
         * @param target
         * @return
         *//*
        public int[] twoSum(int[] nums, int target) {
            int len =  nums.length;
            int[] indices = new int[2];
            for(int i = 0; i < len; i++){
                for(int j = i + 1;j < len; j++){
                    if(nums[i] + nums[j] == target){
                        indices[0] = i;
                        indices[1] = j;
    
                    }
                }
            }
            return indices;

    3、求解二(O(n))

     public int[] twoSum(int[] numbers, int target) {
            int[] result = new int[2];
            Map<Integer, Integer> map = new HashMap<Integer, Integer>();
            for (int i = 0; i < numbers.length; i++) {
                if (map.containsKey(target - numbers[i])) {
                    result[1] = i + 1;
                    result[0] = map.get(target - numbers[i]);
                    return result;
                }
                map.put(numbers[i], i + 1);
            }
            return result;
        }

    此方法的亮点在于只遍历一次,每次遍历利用hashmap将每个数对应的下标和值都存储起来






    欢迎关注我的公众号:小秋的博客 CSDN博客:https://blog.csdn.net/xiaoqiu_cr github:https://github.com/crr121 联系邮箱:rongchen633@gmail.com 有什么问题可以给我留言噢~
  • 相关阅读:
    hdu 1203 I NEED A OFFER!
    数据表示范围
    1936 哪一瓶是毒药?
    注册会计师带你用Python进行探索性风险分析(一)
    网络编程1 初识网络编程
    优秀技术网站汇总:
    DNS(域名系统)
    如何查看电脑网页的源码以及编码方式的位置?
    推荐一款播放器
    我的北大之路(贺舒婷)
  • 原文地址:https://www.cnblogs.com/flyingcr/p/10326895.html
Copyright © 2011-2022 走看看