描述:某码头有一批集装箱,每个集装箱形状大小一致。
由于材质不同,每个集装箱上方可堆叠的集装箱个数不同。 如: 标号0的集装箱,则不可在其上方放置集装箱;
标号1的集装箱,其上方最多可放置1个集装箱;
标号n(0<=n<=106)的集装箱,其上方最多可放置n个集装箱;
给定一批集装箱,假设每个集装箱底面积为1,求如何堆叠使得占地面积最小,并输出最小面积。
输入为一行整形数组的字符串,每个数字以空格隔开:
示例:a1 a2 a3...an
其中0<n<=104,0<=ai<=106表示集装箱的标号;
输入保证正确性,不需要做额外校验
int值,最小面积
输入
0 2 1
输出
1
说明
最少可堆叠为1垛,堆叠顺序自下而上依次为:标号2集装箱、标号1集装箱、标号0集装箱。
输入
1 2 1 2
输出
2
说明
最少可堆叠为2垛。
堆叠方法1:
第1垛自下而上依次为:2 1 1;
第2垛自下而上依次为:2;
堆叠方法2:
第1垛自下而上依次为:2 2 1;
第2垛自下而上依次为:1;
堆叠方法3:
第1垛自下而上依次为:2 1 2;
第2垛自下而上依次为:1;
扫码备注华为交流群~期待您的到来