建立soho公司网站关于电子商务的知识
建立soho公司网站,关于电子商务的知识,最近国际时事热点事件,自己建网站的费用Hello everybody!今天给大家介绍一道我认为比较经典的编程练习题#xff0c;之所以介绍它是因为这道题涉及到二维数组的构建#xff0c;如果用C语言动态构建二维数组是比较麻烦的#xff0c;而用C中STL的vectorvectorint,就可以立马构建出来#xff0c;这也…Hello everybody!今天给大家介绍一道我认为比较经典的编程练习题之所以介绍它是因为这道题涉及到二维数组的构建如果用C语言动态构建二维数组是比较麻烦的而用C中STL的vectorvectorint,就可以立马构建出来这也是C相对于C的优势所在
1.题目 2.代码
class Solution {
public:vectorvectorint generate(int numRows) {vectorvectorint vv(numRows);for(int i0;ivv.size();i){vv[i].resize(i1,0);vv[i][0]vv[i][i]1;}for(int i0;ivv.size();i){for(int j0;jvv[i].size();j){if(vv[i][j]0){vv[i][j]vv[i-1][j-1]vv[i-1][j];}}}return vv;}
};
3.提交结果 4.题目讲解
首先我们不要把杨辉三角看得太复杂其实它就是一个二维数组。
特点
1.随着行数的增加每一行的元素个数是递增的。
2.每一行的的首尾元素是1其他的元素都是上一行特定下标的两个元素之和。
知道了它的特点之后思路就比较清晰了。
接下来的难点就是如何构建二维数组了
最核心的代码就是第一行
vectorvectorint vv(numRows);
它的意思是构建一个vectorvectorint,这个vector中每个元素是vectorint,一共有numRows个vectorint。
每个vectorint相当于一个数组numRows个vectorint就相当于有numRows行每一行是一个数组。
这样二维数组的大致框架就构建好了。
for(int i0;ivv.size();i){vv[i].resize(i1,0);vv[i][0]vv[i][i]1;
}
这个for循环就是对二维数组的每一行进行扩容实现第i行要有i个元素并全部初始化为0。然后将每一行的首尾元素修改为1。
剩下的那个for循环的嵌套就是对杨辉三角剩余元素的构建是比较简单的大家仔细分析是可以读懂的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87688.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!