前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法0基础刷题——组合数

算法0基础刷题——组合数

作者头像
秋名山码神
发布2022-12-13 14:21:03
1910
发布2022-12-13 14:21:03
举报
文章被收录于专栏:码神随笔

前言

最近由于备战蓝桥杯,码神开了个新的专题——英雄老师算法之0基础刷题记,主要作用就是写一下自己的题解报告,用来帮助自己提高一下写作能力,也是复盘的一个好方法,话不多说,发车了!

杨辉三角

介绍

在这里插入图片描述
在这里插入图片描述

性质:

  1. 每个数等于它上方两数之和。
  2. 每行数字左右对称,由1开始逐渐变大。
  3. 第n行的数字有n项。
  4. 前n行共[(1+n)n]/2 个数。
  5. 第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。

对于解题有用的性质就这几个,如果想要深入了解杨辉三角,请各位彦祖百度一下。

解题报告

由于题目是让我们输出前n行的数,所以最直接的想法就是按照题的意思来说,直接进行遍历输出,暴力解法 1.暴力

代码语言:javascript
复制
	for (int i = 0; i < numRows; ++i)
	{
		ret[i].resize(i + 1);
		ret[i][0] = ret[i][i] = 1;
		for (int j = 1; j < i; ++j)
		{
			ret[i][j] = ret[i - 1][j] + ret[i - 1][j - 1];
		}
	}

上面提到了杨辉三角的那么多的性质总不能不用吧,所以下面也是我自己用数学写的题解 2.组合数 在这里我们暂定为n=1,m=1,第n行的第m个数就为C(n-1,m-1),这个请出pow函数,pow函数要用头文件

计算x的y次幂 例:z=pow(x,y); x=9,y=8 z就是9的8次方。

我尝试的实现了一下,发现在这个题中它比模拟,暴力还要复杂,所以说还是用第一个吧

最后

我以后可能会长期更新这个系列,已经半夜了,睡了,下一次就只有干货,没有闲聊了,拜拜,各位彦祖!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 杨辉三角
    • 介绍
      • 解题报告
      • 最后
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档