每日刷题 例题训练 两数相加

一.题目

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

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 : 输入:nums = [3,2,4], target = 6 输出:[1,2]

二.分析

1.采用class solution来解决函数,class solution当作一个类。

2.采用vector容器。

(1)vector功能:其数据结构与数组十分相似,也称为单端数组

(2)vector与普通数组的区别:数组是静态空间,而vector可以动态扩展

(3)动态扩展:并不是在原空间后续借新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间

(4)函数原型:

   vector<T>v;                   //采用模板实现类实现,默认构造函数

   vector(v.begin(),v.end());   //将v[begin(),end())区间中的元素拷贝给本身  前闭后开区间[ )

   vector(n,elem);              //构造函数将n个elem拷贝给本身

   vector(const vector &vec);   //拷贝构造 函数

3,由于数组不能重复出现同一个答案,采用if判断

三.代码

#include<iostream>
#include<vector>
using namespace std;

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

                           

posted @ 2024-03-25 22:49  南辞几经秋  阅读(12)  评论(0)    收藏  举报