2016.07.13-vector<vector<int>>应用2——Two Sum扩展

收获:

  vector<vector<int> >res,不能直接用res[j].push_back(number),因为res[j]是空的,没有初始化

  可以先定义 vector<int> inNumer, res.push_back(inNumber)即可。

Two Sum中仅仅找出一组符合的输出即可,我希望将数组中所有符合的组合都输出。

 1 #include "stdafx.h"
 2 #include "vector"
 3 #include "map"
 4 #include "iostream"
 5 #include "unordered_map"        //unordered_map的头文件
 6 using namespace std;
 7
 8 class MyClass
 9 {
10 public:
11     vector<vector<int> > twoSum(vector<int> &nums, int target)
12     {
13         unordered_map<int, int> hash;        //初始化名为hash的hash table,<key,value>均为int型
14         int size = nums.size();
15         vector<vector<int> > res;            //先定义一个vector<vector<int> > 存放所有符合条件的组合
16         vector<int> inIt;                    //存放每一个符合条件的组合
17         int j = 0;
18         for (int i = 0; i < size; i++)
19         {
20             int numToFind = target - nums[i];
21             if (hash.find(numToFind) != hash.end())
22             {
23                 inIt.push_back(hash[numToFind]);        //先将每组的数放入到inIt中
24                   inIt.push_back(i);
25                 res.push_back(inIt);                    //将这个组放入到res中
26                 inIt.clear();                            //清除每组的值
27             }
28             hash[nums[i]] = i;                            //将vector中的值放到map中
29         }
30         return res;
31     }
32 };
33
34 int _tmain(int argc, _TCHAR* argv[])
35 {
36     vector<int> nums = { 1, 2, 3, 4, 4, 9, 8, 10 };
37     int target = 5;
38     vector<vector<int> > res;
39     MyClass solution;
40     res = solution.twoSum(nums, target);
41     int size = res.size();
42     for (int i = 0; i < size; i++)
43     {
44         int vsize = res[i].size();
45         cout << "[";
46         for (int j = 0; j < vsize; j++)
47         {
48             cout << res[i][j] << " ";
49         }
50         cout << "]";
51     }
52     cout << endl;
53     system("pause");
54     return 0;
55 }
时间: 2024-10-09 22:45:14

2016.07.13-vector<vector<int>>应用2——Two Sum扩展的相关文章

9x25 LED 驱动框架分析 2016.07.13

进入内核 make menuconfig 输入 /led 回车搜索到 │ Location: │ │ -> Device Drivers │ │ -> LED Support (NEW_LEDS [=y]) 进入LED Support发现有这一项 []LED Support for GPIO connected LEDs 在内核搜索该字符串 grep "LED Support for GPIO connected LEDs" * -nR 搜索到 drivers/leds/K

vector&lt; vector&lt;int&gt; &gt;类似于二维数组

1 vector< vector<int> > intVV; 2 vector<int> intV; 3 int i,j; 4 for(i=0;i<10;++i){ 5 intV.clear(); 6 for(j=0;j<10;++j) 7 intV.push_back(i*10+j); 8 intVV.push_back(intV); 9 } 10 11 for(i=0;i<10;++i){ 12 for(j=0;j<10;++j) 13 co

对多维向量vector&lt;vector&lt;int&gt; &gt; vec进行操作

直接写作vector<vector<int> > vec在VC++6.0下编译不过改做:    typedef std::vector<int> ROW;    std::vector<ROW> vec;    vec[0][0] = 0;     vec[0][1] = 1; #include <iostream>#include <vector>using namespace std;int main(){     vector&

vector vector int 初始化

方法一: vector<vector<int>>array=(2,vector<int>()); array[0].push_back(1); array[i].push_back(2); 方法二: vector<vector<int> >array={{1,2},{3,,4}};

vector&lt;vector&lt;int&gt; &gt;二维容器编程

#include <iostream> #include <vector> using std::cout; using std::endl; using std::vector; template<typename T> void show(const vector<vector<T> > &ivvec); //输出vector<vector<int> >的内容 int main(void) {  vector&

vector&lt;vector&lt;int&gt;&gt;

/************************************************************************ Copyright (C) 2015-2020. File name: Author: Greenapple QQ: 361348440 EMail: [email protected] Version: V1.0 Date: 2015/3/15 Description: STL vector usage Others: 无 Modification

vector&lt;vector&lt;int&gt;&gt; 使用简单示例

#include <iostream> #include <vector> using namespace std; int main() { vector<vector<int>> A; vector<int> B; B.push_back(0); B.push_back(1); B.push_back(2); B.push_back(3); A.push_back(B); //注意需要清空B B.clear(); B.push_back(4)

由jtable浅谈vector&lt;vector&lt;Object&gt;&gt;的用法(转自a718515028的专栏)

以前只用过vector<Object>  ,但是在做从数据库导出数据放到jtable中时,发现还有个vector<vector<Object>>的用法. 先说jtable和DefaultTableModel jtable本身是可以显示一张列表,但是不能按钮监听的增加正行数据. jtable中没有addRow(Object[] rowData) 或者addRow(Vector rowData) ,方法. 但是jtable中有一个构造方法,JTable(TableModel

【谜客帝国】第79届阳钧天歌主擂谜会(2016.07.07)

[谜客帝国]第79届阳钧天歌主擂谜会(2016.07.07) 主持:瓷   计分:手手 1.主动携手,昂首去西川(形容词)压抑 2.门客先到,必须蛙跳(称谓)闺蜜 3.不死的摇钱树(3字鲁迅小说人名)金永生 4.高手移居西城,她也去比试(称谓)老尼姑 5.遗容依旧(7字俗语)面不改色心不跳 6.缺少的缘故(名词,徐妃格)炊烟 7.未有好处(形容词,徐妃格)洋溢 8.山里飞花,坟前寒烛(人体特征)老茧 9.灾后工作模式,重新合作来依靠(旧物品)烟袋 10.守备送出关,吕布驰去也(象棋术语)过宫马