杨辉三角

 我来答
感情大使17
2022-07-10 · TA获得超过7110个赞
知道大有可为答主
回答量:6850
采纳率:99%
帮助的人:341万
展开全部
下面的图形是著名的杨辉三角形:

如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列: 1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,⋯

给定一个正整数 N,请你输出数列中第一次出现 N是在第几个数?

输入一个整数 N。

输出一个整数代表答案。

示例:输入6,输出13

对于 20% 的评测用例,1≤N≤10; 对于所有评测用例,1≤N≤1000000000

最大运行时间:1s
最大运行内存: 256M

误区:一开始拿到这题,我打算用二维数组存储一个杨辉三角,后来发现测试用例数据规模很大,达到了10^9。这种时候就已经需要用long long来存储数据了。
解法描述:

3、由于每行每列对应的值都是递增的,所以如果我们想覆盖住最大的数据,也就是1e9,那么就要找到一个i,使得C2i i(组合数,懒得拍照)>1e9就可以了。
于是我们找到了这个i,便是16。这代表我们只要搜索0~32行的左半部分就可以了。
4、下面就是查找部分,因为递增的关系,要从最右边的行数查找。同时为了节省时间,运用二分查找。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式