一维数组:vector<int> ans(n); 二维数组: vector<vector<int>> a(n);
数据类型除了常见的int,float,double,long以及long long,ull之外,还可以是STL容器类型如vector,queue,set: Copy vector<int> a; vector<double> a; vector<string> a; vector<longlong> a; vector<vector<int> > a; vector本身就可以视为一个一维数组,如果在这基础上再开数组,那就是一个二维数组 如: Copy...
classSolution {public: vector<vector<int>> updateMatrix(vector<vector<int>>&mat) {intdx[4]={0,0,1,-1};intdy[4]={1,-1,0,0};intn=mat.size();intm=mat[0].size(); vector<vector<int>> ans(n, vector<int> (m, INT_MAX/2)); vector<vector<int>> vis(n, vector<int> (m,0...
我把上面最最要的一行代码进行解释:vector<int>(v).swap(v); vector<int>(v)中的(v)其实是一个匿名对象利用拷贝构造将v容器的值存进这个“匿名容器”内,但是他的容量是很小的;随后调用swap(v),把v容器本来的指向指到这个匿名容器,直接让匿名容器承担数以万计的容量,然后编译器自动销毁匿名对象,巧妙缩减了...
int x=q.front(); q.pop(); vis[x]=0;//之前的的点重新恢复标记 for(int i=0; i<vec[x].size(); i++)//理解vec[x].size() { //这个表示的是顶点x指向的所有点的个数 //链式前向中用next和head[ ]往后去查找,这里用vector更方便 ...
vector& operator=(const vector &ans);重载赋值操作符 assign(be,en);将[be,en)区间内的数组拷贝赋值给自己 assign(n,elem);将n个elem拷贝赋值给自己 代码示例: //vector赋值 void PrintVector(vector<int>& v) { for (vector<int>::iterator it = v.begin(); it != v.end(); it++) ...
intfind(inti,intj){ // 向4个方向尝试 for(i=0->3){ if(ok){ returnfind(next)+1 } } } intmain{ for(i=0->n) { for(j=0->m) { t=find(i,j) ans=max(ans,t) } } } 03 问题 上面的做法可以得到最优解,但有一个问题。如下例,以15为起点的时候,会尝试把6->5->4->3->2->...
vector<int>ans;ans.reserve(n+m);ans.insert(ans.end(),n,a);ans.insert(ans.end(),m,b);...
int size = vec.size(); 3 获取二维数组的长度 int size_row = vec.size(); //获取行数 int size_col = vec[0].size(); //获取列数 4给vector二维数组赋值 简单的就直接赋值 ans[0][0]=1; ans[0][1]=2; ans[1][0]=3; ans[1][1]=4;...
class Solution {public:int singleNumber(vector<int>& nums) {map<int,int> a;int n=nums.size();int ans=0;for(int i=0;i<n;i++){a[nums[i]]++;}for(int i=0;i<n;i++){if(a[nums[i]]==1){ans=nums[i];break;}}return ans;}}; ...