入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

LeetCode第1题:Two Sum

创建时间:2017-03-28 投稿人: 浏览次数:141

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。