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].
此方法时间复杂度为o(n^2),需要注意的是C++没有专门的求数组长度的函数,但vector容器的构造函数有size。 vector是一个多功能的,能够操作多种数据结构和算法的模板类和函数库,vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。(注:STL的容器从实现的角度讲可以说是类模板(class teplate)。)
1、vector容器的声明方式主要包括一下几种:
vector v ,创建一个空的vector。 vector v1(v) ,复制一个vector。 vector v(n) ,创建一个vector,含有n个数据,数据均已缺省构造产生。 vector v(n, elem) ,创建一个含有n个elem拷贝的vector。 vector v(beg,end) ,创建一个以[beg;end)区间的vector。 v.~ vector () ,销毁所有数据,释放内存。
2、vector中其他常用的函数用法:
v.assign(beg,end) , 将[beg; end)区间中的数据赋值给v。 v.assign(n,elem) , 将n个elem的拷贝赋值给v。 v.at(idx) , 传回索引idx所指的数据,如果idx越界,抛出out_of_range。 v.begin() , 传回迭代器重的可一个数据。 v.capacity() , 返回容器中数据个数。 v.clear() , 移除容器中所有数据。 v.empty() , 判断容器是否为空。 v.end() , 指向迭代器中的最后一个数据地址。 v.insert(pos,elem) 在pos位置插入一个elem拷贝,传回新数据位置(位置指传回地址值)。 v.insert(pos,n,elem) 在pos位置插入在[beg,end)区间的数据。无返回值。 v.insert(pos,beg,end) 在pos位置插入n个elem数据。无返回值。 v.erase(pos) 删除pos位置的数据,传回下一个数据的位置。 v.erase(beg,end) 删除[beg,end)区间的数据,传回下一个数据的位置。 v.capacity() 返回容器中数据个数。 v.size() 返回容器中实际数据的个数。 v.reserve() 保留适当的容量。 v.resize(num) 重新指定队列的长度。 v.max_size() 返回容器中最大数据的数量。
新闻热点
疑难解答