`

LeetCode 1 - Two Sum

 
阅读更多

Given an array of integers, find two numbers such that they add up to a specific target number.

The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.

You may assume that each input would have exactly one solution.

Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2

 

vector<int> twoSum(vector<int>& nums, int target) {
    unordered_map<int,int> map;
    vector<int> res(2,-1);
    for(int i=0; i<nums.size(); i++) {
        int diff = target - nums[i];
        if(map.count(diff)) {
            res[0] = map[diff]+1;
            res[1] = i+1;
            break;
        } else {
            map[nums[i]] = i; 
        }
    }
    return res;
}

 

Java代码如下:

public int[] twoSum(int[] nums, int target) {
    int[] res = new int[2];
    Map<Integer, Integer> map = new HashMap<>();
    for(int i=0; i<nums.length; i++) {
        int key = target - nums[i];
        Integer val = map.get(key);
        if(val != null) {
            res[0] = val+1;
            res[1] = i+1;
            break;
        } else {
            map.put(nums[i], i);
        }
    }
    return res;
}
// if you just return the values, not the indices, you can also do this
public int[] twoSum0(int[] nums, int target) {
    Arrays.sort(nums);
    int[] res = new int[2];
    int start = 0, end = nums.length-1;
    while(start < end) {
        int sum = nums[start] + nums[end];
        if(sum < target) {
            end--;
        } else if(sum > target) {
            start++;
        } else {
            res[0] = nums[start];
            res[1] = nums[end];
            return res;
        }
    }
    return res;
}

 

分享到:
评论

相关推荐

    c语言-leetcode 0001-two-sum.zip

    c c语言_leetcode 0001_two_sum

    LeetCode 101 - A LeetCode Grinding Guide (C++ Version).pdf

    2. **双指针技巧**:包括算法的解释、TwoSum问题、快慢指针和滑动窗口技术。双指针技术通常用于处理数组或链表中的问题,通过两个指针的不同移动策略来解决特定问题。 3. **二分查找**:包括算法的解释、求开方、...

    leetcode2-leetcode-training:算法训练

    leetcode 2 leetcode-训练 算法训练。 java $: javac hello.java java ...leetcode ...leetcode ...leetcode ...leetcode ...1.two-sum.cpp leetcode test 1.two-sum.cpp leetcode test 1.two-sum.cpp -t '[1,2,3]\n3'

    leetcode和oj-leetcode-1-Two-Sum:解决方案

    leetcode-1-Two-Sum 这是我在 Github 的第一天。 我只是 AC leetcode 中的第一个问题。 从现在开始,我将使用Github在leetcode中记录我的生活。 我擅长 C++,但对 java 和 Python 不是很专业,我将使用最流行的 3 种...

    leetcode答案-Two-Sum:leetcode两数之和代码

    Two-Sum leetcode两数之和代码 题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组...

    leetcode接口-leetcodeHelper:leetcodeHelper

    leetcode 接口 该项目可帮助您使用首选的 IDE 或带有命令行界面 (CLI) 的编辑器来执行 ...two-sum leetcode --name add-two-numbers leetcode --name median-of-two-sorted-arrays 然后问题描述和启动代码将自动

    leetcode答案-LeetCode_1_TwoSum:LeetCode_1_TwoSum

    答案LeetCode_1_TwoSum LeetCode 问题:给定一个整数数组,找出两个数字,使它们相加为特定的目标数字。 函数 twoSum 应该返回两个数字的索引,使它们相加为目标,其中 index1 必须小于 index2。 请注意,您返回的...

    离线和leetcode-leetcode-cli-2.6.1:leetcode-cli-2.6.1

    离线和leetcode leetcode-cli 一个享受 leetcode 的高效 cli 工具! 非常感谢 leetcode.com,一个非常棒的网站!...⦙⦙⦙⦙⦙⦙⦙⦙ ...leetcode.com。...leetcode ...leetcode ...leetcode ...leetcode ..../two-sum.cpp

    java-leetcode题解之001-Two-Sum

    java入门 java_leetcode题解之001_Two_Sum

    离线和leetcode-leetcode-cn-cli:为leetcode-cn.com工作

    离线和leetcode leetcode-cli 一个享受 leetcode 的高效 cli 工具! 非常感谢 leetcode.com,一个非常棒的网站!...⦙⦙⦙⦙⦙⦙⦙⦙ ...leetcode.com。...leetcode ...leetcode ...leetcode ...leetcode ..../two-sum.cpp

    leetcode答案-Two-Sum:二和

    Two-Sum(两数和问题) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下 可以假设每种输入只会对应一个答案。但是,不能重复利用这个数组中同样的...

    LeetCode题解 - Java语言实现-181页.pdf

    12. Two Sum II Input array is sorted 两数之和II是一个变体的问题,要求找到数组中两个元素之和等于目标值的元素,并且数组已经排序。可以使用双指针来解决该问题。 13. Two Sum III Data structure design 两...

    leetcode答案-leetcode-machine-swift:Xcode中的leetcode解决方案验证

    leetcode 答案 leetcode-machine-swift :SOS_button: 请帮助在Sources/leetcode-machine-swift/leetcode.swift设置所有 leetcode 问题。...1 : Question ( name : " Two Sum " , inputs : [([ 2 , 7

    LeetCode 101 - A LeetCode Grinding Guide (C Version).pdf

    在双指针部分,作者解释了双指针技术在处理数组或链表问题时如何发挥作用,例如在TwoSum问题中的应用。在动态规划章节中,作者不仅介绍了动态规划的基本原理,还涵盖了不同类型的动态规划问题,如分割类型题、子序列...

    python-leetcode题解之170-Two-Sum-III-Data-structure-design.py

    python python_leetcode题解之170_Two_Sum_III-Data_structure_design.py

    leetcodepython001-leetcode-problems-crawler:leetcode-问题-爬虫

    001.two-sum │  ├── information.json │  ├── README.md ├── 002.add-two-numbers │  ├── information.json │  ├── README.md ... 有一些有用的选项: Options: -r, --rule crawling rule, ...

    python-leetcode题解之167-Two-Sum-II-Input-array-is-sorted.py

    python python_leetcode题解之167_Two_Sum_II_Input_array_is_sorted.py

    LeetCode 题解 - v1.01

    1. **Two Sum**(两数之和):这是一个基础的算法问题,要求找到数组中两个元素的索引,使得它们的和等于给定的目标值。解题通常涉及哈希表的使用,以实现线性时间复杂度的解决方案。教程中提供了不同语言(如C++, ...

    vscode安装leetcode-leetcode-js-tdd:LeetCode勇士的简单样板

    twoSum , cases : [ { in : [ [ 2 , 7 , 11 , 15 ] , 9 ] , out : [ 0 , 1 ] } , { in : [ [ 11 , 2 , 15 , 7 ] , 9 ] , out : [ 1 , 3 ] } , ] , } npm start 特征 忽视问题 如果导出ignore: true则可以忽略问题 ...

Global site tag (gtag.js) - Google Analytics