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++ 创建三维数组的几种方法