LeetCode第1题:Two Sum
LeetCode第一题:
问题描述:给定一个整形的数组,在给定一个特定的整数值,要求返回这个整形数组中两个元素的和等于给定的整数的元素索引。
例如给定数组 nums=[2,7,11,15],再给定一个整数9,可知数组第一个数2+第二个数7等于该正整数9,所以返回这两个数的索引0,1.
由于LeetCode是用一个int型的容器vector存储这些数,所以,下面的代码也是对容器进行操作,遍历容器没有使用迭代器。
下面是代码。
#include <iostream>
#include <vector>
using namespace std;
class Solution
{
public:
vector<int> twoSum(vector<int>& nums, int target)
{
vector<int> Index;//创建局部的int型容器
Index.clear();//清除容器
Index.shrink_to_fit();
for (int i=0;i<nums.size();i++)//遍历容器
{
for (int j=i;j<nums.size();j++)
{
if (j!=i)//如果这两个不是同一个数
{
if (nums[i]+nums[j]==target)//如果和==target
{
Index.push_back(i);//将索引压入容器
Index.push_back(j);
}
}
}
}
return Index;
}
};
int main()
{
vector<int> nums;
nums.clear();
nums.shrink_to_fit();
nums.push_back(3);
nums.push_back(2);
nums.push_back(4);
Solution s;
vector<int> Index=s.twoSum(nums,6);
for (int i=0;i<Index.size();i++)
{
cout<<Index[i]<<endl;
}
return 0;
}
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: C++ 创建三维数组的几种方法
