我正在尝试解决这个小难题(算法):我有 N 个图像图标,我想将它们均匀地分布在用户屏幕上。说,我把它们放在一张桌子上。如果有一个图像,则表格中将有一个单元格。如果两 - 一行两列,如果三 - 一行三列,如果四 - 两行,两列......等等,直到行空间消失,从那时起,表格应该只在列中增长而不添加额外的行。
我正在尝试为此制定一个算法,也许这已经在某处有解决方案?
到目前为止,我的尝试是这样的:
obtain_max_rows()
obtain_visible_columns()
if (number_of_pictures > max_rows*max_columns)
{
columns = roundup(number_of_pictures/max_rows)
for(max_rows){generate row;for columns{generate column}}
}
else
{
**here comes to trouble...**
}
不过这个逻辑有点傻——它不知何故需要考虑第一个屏幕上有 12 张图片和另一个屏幕上有 2 张图片试图平衡它的情况,比如 8/6 或类似的情况。