LeetCode OJ刷题历程——Two Sum

来源:互联网 发布:墓畔回忆录 知乎 编辑:程序博客网 时间:2024/05/19 15:24

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].
You may assume that each input would have exactly one solution.
以上是题目要求。

这是LeetCode的第一题,没什么难度,我选择的是C++语言,第一次写,效率并不高,运行时间为372ms,比较低。下面贴出首次AC代码:

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

这个题目让我复习了一下关于vector的操作,这里重新罗列一下:

(1)初始化

vector<T> v1

vector<T> v2(v1)v2中包含v1所有元素的副本

vector<T> v2 = v1等价于v2(v1)

vector<T> v3(n,val)v3包含n个重复元素,值为val

vector<T> v4(n)v4包含了n个重复地执行了值初始化的对象

vector<T> v5{a,b,c....}v5包含了初始个数的元素,即和数组的初始化一样

vector<T> v5 = {a,b,c....}等价于v5{a,b,c.....}

比如vector<int> v1(10) 则是v1有十个元素,每个值都为0,vector<int> v1(10,1),则每个值都为1,注意圆括号和花括号的区别。

(2)vector的一些操作

v.push_back(t)向v的尾端添加一个值为t的元素

<,<=,>,>= 以字典顺序进行

需要注意的是不能以下标形式对添加元素

(3)vector的遍历

1 0
原创粉丝点击