我有一个项目列表,有点像这样:
[
["orange", 9],
["watermelon", 3],
["grapefruit", 6],
["peach", 8],
["durian", 2],
["apricot", 6]
]
Run Code Online (Sandbox Code Playgroud)
我想把这个列表分成......说两组,以便每组中项目的权重总和尽可能相等,即:
List 1:
orange: 9
durian: 2
apricot: 6
TOTAL: 17
List 2:
watermelon: 3
grapefruit: 6
peach: 8
TOTAL: 17
Run Code Online (Sandbox Code Playgroud)
目前我正在通过以锯齿形的方式遍历有序列表来解决这个问题.在第一遍中将具有更多权重的项目分配给每个组,在第二遍中分配权重较小的项目,依此类推.
这样可行,但它有缺陷.我认为在我们之间交换项目的组的第二次传递将导致更均匀的分布式组,但所涉及的代码可能变得太复杂.
有人知道更有效或更聪明的方法吗?
谢谢!
嘿伙计们,我已经在一个项目上工作了一段时间,其中包含以下组件:
我正在使用Spring的EntityManager魔术......但是我在处理我的动作中的事务时遇到了问题.例如,我在我的类中的几个方法中设置持久化对象的值,并且我希望能够rollback在validate方法找到验证错误时,否则commit这些更改.我已经花了很长时间阅读一半的互联网进行全面的解释.不幸的是,没有完整的例子(至少类似于我的堆栈).
我在邮件列表上偶然发现了这个帖子:Struts2 Action中的@Transactional Spring Annotation不起作用.我正在链接的消息似乎有一个非常简单和直接的解决方案,使用一个TransactionInterceptor将要做的技巧似乎...问题是我没有找到关于这个拦截器的有用信息.
这里的任何人都有使用这项技术的经验,并且可以在Struts2操作中如何使用Spring事务来提供一些提示和一两个链接?
谢谢!
- 编辑1 -
如果您有兴趣,我已经设置了一个测试项目,只需下载文件并试用(或检查它).谢谢!