2022/10/06------C++实现两数之和

文章目录

  • 题目
  • 代码实现

题目

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

分析:两种方法,一种是暴力法,使用两个循环,看两个数之和相加是否等于目标值。另外一种方法,使用库函数的方法,先判断后续的数组中是否有符合条件的值,而后再取出其坐标。但是取出坐标的时候要考虑迭代器可能会超出数组长度。

代码实现

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int i=0;
        
        for(i=0;i<nums.size();i++){
            if(count(nums.begin(),nums.end(),target-nums[i])){
                int other=find(nums.begin()+i+1,nums.end(),target-nums[i])-nums.begin();
                if(other<nums.size()){
                    return {i,other};
                }
                continue;
            }
        }
        return {};
    }
};

你可能感兴趣的:(数据结构与算法,c++,算法,leetcode)