首页 > 编程语言 > 详细

Two Sum:给出一个整数数组,返回两个数的下标值,令其和等于一个指定的目标值 #Leetcode

时间:2020-09-06 23:34:46      阅读:68      评论:0      收藏:0      [点我收藏+]
// Given nums = [2, 7, 11, 15], target = 9,

// Because nums[0] + nums[1] = 2 + 7 = 9,
// return [0, 1].


#include <iostream>
#include <vector>


int GetIndexByValue(const std::vector<int> &inArr, int value, int startIndex) {
    for (int i = startIndex; i < inArr.size(); ++i) {
        if (value == inArr[i]) {
            return i;
        }
    }

    return -1;
}

std::vector<int> GetIndicesOf2Addons(const std::vector<int> &inArr, int target) {
    for (int i = 0; i < inArr.size(); ++i) {
        int _2ndAddon = target - inArr[i];
        int indexOf2ndAddon = GetIndexByValue(inArr, _2ndAddon, i + 1);
        if (indexOf2ndAddon < 0) {
            std::cout << "Failed to find: " << _2ndAddon << "\n";
            continue;
        }

        return std::vector<int> {i, indexOf2ndAddon};
    }

    return std::vector<int>(0);
}


int main(int argc, char const *argv[]) {
    std::vector<int> nums {
        2, 3, 11, 15, -2
    };
    int target = 4;

    std::vector<int> result = GetIndicesOf2Addons(nums, target);

    if (result.empty()) {
        std::cout << "Failed.\n";
        return -1;
    }

    for (auto i: result) {
        std::cout << i << "\t";
    }
    std::cout << "\n";

    return 0;
}

// g++ two_sum.cpp -std=c++11 && ./a.out

 

Two Sum:给出一个整数数组,返回两个数的下标值,令其和等于一个指定的目标值 #Leetcode

原文:https://www.cnblogs.com/xiaochou/p/13623930.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!