-
答案 1:
var cups = [], cupHeight = 100, columns = [ { id : 1, type : 0, height : 60 }, { id : 2, type : 1, height : 91 }, { id : 3, type : 1, height : 30 }, { id : 4, type : 0, height : 90 } ]; var insert = function () { for (var i = 0 ; i < cups.length ; ++ i) { if (cups[i].height >= columns[0].height) { cups[i].height -= columns[0].height; cups[i].columns.push(columns.shift()); return; } else if (cups[i].height && columns[0].type == 0) { var temp = { id : columns[0].id, type : 0, height : columns[0].height - cups[i].height }; columns[0].height = cups[i].height; cups[i].height = 0; cups[i].columns.push(columns.shift()); columns.unshift(temp); return; } } var temp = { columns : [], height : cupHeight }; cups.push(temp); arguments.callee(); }; while (columns.length) { insert(); } /* 实现思路 重复以下 1、拿到最近的杯具,执行操作,如果切分,则把切完多余的柱子,放到杯具数组的顶端 2、没有杯具够用了(不是正好放下,也不是可以切,就加个新杯具 */ if (window.console) { console.log(cups); }
类似装箱怎么实现?
2012-01-19 20:24:05 来源: 点击:
相关热词搜索:
上一篇:谁知道“苏昱(Rainer Su)”这位大大的经历?
下一篇:唱和声时如何防止走音(被人带跑/找不着自己的调)?