vector<vector<int> >array 理解
在很多时候,类中二维数组的维度往往无法提前知道,因此需要动态地分配空间。
使用new运算符是其中的一个解决方案,但是操作不当往往会造成内存溢出/泄漏。
使用STL的vector可以避免这个麻烦。
实现:
/* 矩阵是有序的,从左下角来看,向上数字递减,向右数字递增, 因此从左下角开始查找,当要查找数字比左下角数字大时。右移 要查找数字比左下角数字小时,上移 */ #include<iostream> #include<vector> #include<cstdlib> using namespace std; class Solution{ public: bool Find(int target,vector<vector<int> >array){ int row=array.size(); int col=array[0].size(); int i,j; for(i=row-1,j=0;i>=0&&j<col;) { if(target<array[i][j]) { i--; continue; } else if(target>array[i][j]) { j++; continue; } else return true; } return false; } }; int main() { vector<vector<int> >array(4,vector<int>(4)); //定义一个4*4的二维数组 //给数组元素赋值 array[0][0]=1; array[0][1]=2; array[0][2]=3; array[0][3]=4; array[1][0]=2; array[1][1]=3; array[1][2]=6; array[1][3]=7; array[2][0]=3; array[2][1]=4; array[2][2]=7; array[2][3]=8; array[3][0]=5; array[3][1]=6; array[3][2]=9; array[3][3]=10; Solution s; cout<<s.Find(9,array); return 0; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。