问个从集合中计算指定数字并分组的方法

lovest317 2014-10-09 08:44:13
有一个集合如
id money
1 33333
2 44444
3 55555
4 66666

输入了一个88888的数字

要计算出所有小于等于这个数字的记录.并分组归类...
一组有多条记录..但这几条记录的money的合要小于等于我输入的数字..需要把所有的分组都列出来...
...全文
249 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovest317 2014-10-17
  • 打赏
  • 举报
回复
还是没结果...哎.
Norris_Zhang 2014-10-13
  • 打赏
  • 举报
回复
想到一个思路,没考虑效率。 首先这个数据集按value排序 5 11111 0 22222 1 33333 2 44444 3 55555 4 66666 现在输入55555 先循环一次,找到原集合中第一个大于输入55555的值的位置:5(位置下标从0开始) 这个位置之前的子集合是我们要计算的数据,之后的数据不用考虑。 然后根据这个下标5得知一共有5条数据,然后就是一个递归排列组合问题了,把所有可能的组合都计算一个和,如果和小于输入55555,则该组合是结果集的一个项。
attilax 2014-10-13
  • 打赏
  • 举报
回复
linq是王道,解决这类型问题。。。
lovest317 2014-10-13
  • 打赏
  • 举报
回复
哎...哪位大神能来个好算法不....
lovest317 2014-10-11
  • 打赏
  • 举报
回复
比如: id money 5 11111 0 22222 1 33333 2 44444 3 55555 4 66666 输入 55555 分为 第一组 0 22222 1 33333 第二组 3 55555 第三组 5 11111 2 44444 第四组 5 11111 1 33333 像这样的... 只要每一组的合小于或等于指定的值就可以.也可以说每一条记录本身就是一个组合..只是可以忽略掉
scmod 2014-10-11
  • 打赏
  • 举报
回复
想了想发现我连怎么取其中任意个数相加求和都不会。。。。 lz你用自己那个加个多线程有用不。。 前面几楼的看了看不懂。。。 sql也写不来。。 智商好捉急啊。。。
scmod 2014-10-11
  • 打赏
  • 举报
回复
哦是这个意思。。。。 那不就是把小于等于的都可能组合都列出来么。。 然后那个集合有序不
lovest317 2014-10-11
  • 打赏
  • 举报
回复
求大神告知啊...
lovest317 2014-10-10
  • 打赏
  • 举报
回复
有什么直接点的方法吗.....就是用存JAVA...
howsun_zh 2014-10-10
  • 打赏
  • 举报
回复
给一个比较笨的方案,但性能绝对没问题。 假设原Map对象为originalMap,现在新建一个与originalMap完全相反的Map,假设叫newMap,newMap的key为originalMap的value,newMap的value为Set<Integer>,即originalMap的key的集合。 搜索时采用二分算法,由于newMap的key是整数,默认是从小到大排好的,现将newMap的key分成左右树,递归对比,符合条件后返回所有左边的集合就是结果。
scmod 2014-10-10
  • 打赏
  • 举报
回复
看不懂啊。。 为什么有两次分组 想要的结果是那样? 比如1,2,3,4 输入6 出来第一组是: {1;1,2;1,3;1,4,;1,2,3} 第二组 {2;1,2;2,3;2,4;1,2,3} 像这样第一次分组按单个? 分组里面分组计算和?
lovest317 2014-10-10
  • 打赏
  • 举报
回复
对的...现在数据有一千条左右.....会有很多结果...所以想求一个好点的方法...现在写的如果几十条记录没问题..上了一百就GC了....
ningbohezhijun 2014-10-10
  • 打赏
  • 举报
回复
这个分组有要求吗,不然不是会存在多种分组的结果,不是吗? 比如: id money 0 22222 1 33333 2 44444 3 55555 4 66666 输入 88888,分组结果是?
lovest317 2014-10-10
  • 打赏
  • 举报
回复
没大神知道吗......
attilax 2014-10-09
  • 打赏
  • 举报
回复
比较好的办法是linq拉。。。类似sql的语法来查询集合。。。但是这个linq要你自己写,要求有的高。 还有个方法是,放入内存数据库,使用sql查询,easy。。推荐这个
lovest317 2014-10-09
  • 打赏
  • 举报
回复
自己顶一下....

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧