任务
假设有一面木板墙,每块木板的宽度都是 1,你现在想在木板墙上,沿着平行于地面的方向,切割出一块矩形区域。问题来了,如果给出了每一块木板的高度,那么如何切出面积最大的矩形区域?矩形木板墙如下图所示:
思考
图中有 7 块木板,每块木板的高度分别为:2、1、4、5、1、3、3。经过尝试,我们发现最大矩形就是红色阴影部分所示,也就是切割了高度为 4 和 5 两块木板,形成了一个高度为 4,宽度为 2 的矩形区域,这个最大面积为 8。
今天看了天气,不是很热,和女朋友计划去龙潭水乡玩一玩。
坐车大概花了一个半小时,因为是快速公交,时间上节约了大概半小时。
到达指定地点后,哇,人很少,很有江南水乡的气息,和小学语文课本上见到的一样呢。
到处都是桥,路面凹凸不平,水面上的荷花很好看,景区内也有穿着汉服拍照的小哥哥小姐姐。
我和她选择了一些人比较少的地方取景,摆姿势,不得不说,自己私底下看了看讲拍摄的文章,还是很有用,女朋友夸我拍照技术也进步了,哈哈。(可想而知以前在拍照上打击的有多惨~~~)
滑动区间最大值,就是指在固定区间长度的前提下,在一个序列上,从前到后滑动这个区间窗口,每次窗口内部的最大值,就组成了滑动区间最大值。
例如,给你如下包含 8 个数字的序列,区间长度设置为 3:
1 | [6 4 2] 10 3 8 5 9 -> 6 |
滑动区间从数字 6 开始出发,每次向右移动一个数字,同时把左边的一个数字丢出去,保持区间长度为 3,最后移动到数字 9 停止。可以看到,这个序列共包含 8 个数字,所以最后形成的滑动区间最大值共有 6 个,依次是 6、10、10、10、8、9。
请你实现一个程序,输出 2 的 1000 次方的结果是多少。
那该怎么办呢?
求出 10000 以内所有数字的因数和。
可能已经想好的方法:
1 | #include <stdio.h> |
效率较低,所以弃了。