【LeetCode】1. Two Sum

来源:互联网 发布:ug线切割编程实例 编辑:程序博客网 时间:2024/05/22 16:52

Quenstion:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

Example:

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].

Solution:

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

1维:vector<int> v;v.push_back( i );//把元素存入到vector中v.size();// 表示vector存入元素的个数v.clear();// 对存入的数据清空v.erase();//从指定容器删除指定位置的元素或某段范围内的元素 cout << v[ i ] << "  "; //把每个元素显示出来v.begin()和v.end() 来得到vector开始的和结束的元素地址的指针位置2维://定义一个二维的动态数组,有10行,每一行是一个用一个vector存储这一行的数据。所以每一行的长度是可以变化的。之所以用到vector<int>(0)是对vector初始化,否则不能对vector存入元素。vector< vector<int> > Array( 10, vector<int>(0) );Array[ j ].push_back( i );//定义一个行列都是变化的数组。vector< vector<int> > Array;vector< int > line;for( j = 0; j < 10; j++ )Array.push_back( line );//要对每一个vector初始化,否则不能存入元素。 for ( i = 0; i < 9; i++ )  Array[ j ].push_back( i ); }}


原创粉丝点击