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 有什么问题可以给我留言噢~
  • 相关阅读:
    leetcode-13. Roman to Integer
    leetcode-171. Excel Sheet Column Number
    学生信息管理系统案例小结
    Kafka 生产者、消费者与分区的关系
    json.dumps()包装中文字符串
    Spring-JDBC
    JDBC 连接池
    JDBC
    Python DBUtils 连接池对象 (PooledDB)
    Java Junit单元测试
  • 原文地址:https://www.cnblogs.com/flyingcr/p/10326895.html
Copyright © 2011-2022 走看看