关于 数据匹配的问题 真心求教

问题描述

问题如下:已经result=10,数组A={1,2,3,4,5,6,7,8,9,10},希望能在数组中找出SUM()=10的所有元素。比如:1,9;2,8;10;等等现在我想到的办法是循环组合的方式:从C(1,10)到C(2,10)直到C(10,10),请问有没有更有效率的办法?在线等,万分感谢!!!

解决方案

解决方案二:
01背包
解决方案三:
坐等Linq高人
解决方案四:
该回复于2012-03-16 13:04:51被版主删除
解决方案五:
我也只能想到循环的方式……等高人
解决方案六:
引用2楼nonocast的回复:

坐等Linq高人

同等LINQ高手
解决方案七:
在线等高人
解决方案八:
引用1楼faoyy的回复:

01背包

+1标准的背包
解决方案九:
基本算法啊,背包引用7楼hwbox的回复:

引用1楼faoyy的回复:01背包+1标准的背包

解决方案十:
各位高手有没有背包的算法,不要递归那种的;背包问题,其基本思想是不是仍然是循环?
解决方案十一:
求高手回复
解决方案十二:
staticvoidMain(string[]args){int[]values={1,2,3,4,5,6,7,8,9,10};vartestdata=values.Select((n,i)=>new{id=i+1,total=n}).ToArray();vartotal=10;Func<IEnumerable<int[]>,int[],IEnumerable<int[]>>comb=(x,y)=>fromainxfrombinywherea.Count()==0||a.Last()<bselecta.Concat(new[]{b}).ToArray();varindices=Enumerable.Range(0,testdata.Length).ToArray();varlist=newint[][]{newint[]{}}.AsEnumerable();varresult=Enumerable.Range(1,testdata.Length).SelectMany(i=>list=comb(list,indices)).Where(c=>c.Sum(i=>testdata[i].total)==total).Select(c=>c.Select(i=>testdata[i]));foreach(varcinresult)Console.WriteLine("({0})t{1}={2}",string.Join(",",c.Select(d=>d.id)),string.Join("+",c.Select(d=>d.total)),total);}
解决方案十三:
问题已用其他方法解决,感谢各位的回复

时间: 2024-09-24 20:54:08

关于 数据匹配的问题 真心求教的相关文章

真心求教关于自动化Web请求的开发问题,类似于开发一个12306桌面抢票软件,具体请进呢

问题描述 真心求教关于自动化Web请求的开发问题,类似于开发一个12306桌面抢票软件,具体请进呢 Web开发确实是博大精深,因为目前个人是开发手游,因为某些原因需要暂时做这么一个东西,但时间的问题不太允许我深入的研究Web开发,所以特来求教各位大神,我需要做的这个东西和之前一直流传的12306桌面抢票软件很像.就是根据某些网站写一个外挂软件,让一些需要手动完成的操作,代码来自动完成. 刚开始我以为Web请求一般都用一个拼接好的url直接访问,然后获得一些数据,接着再处理这些数据就好了.但事实证

ata ow-datatable中数据修改出错,,求教

问题描述 datatable中数据修改出错,,求教 for (int i = 0; i < DT.Rows.Count; i++) { string b = ""; string a = DT.Rows[i][6].ToString(); foreach (char c in a.ToCharArray(0, a.Length)) { if (c != Convert.ToChar(' ')) { b += c; } } DT.Rows[i]["行政区"] =

真心求教,本人java新手

问题描述 真心求教,本人java新手 求推荐几种适合java新手学的技术,大数据的东西需要看哪些方面的资料,有什么文档吗?求大神给几个 解决方案 你可以看看java编程思想,对面向对象的理解会很深 解决方案二: 大数据,你可以看看下面的书籍: O Reilly:Hadoop权威指南(第2版) Introduction to Data Mining 机器学习:实用案例解析 解决方案三: java编程思想,经典书籍 解决方案四: 我觉得既然是新手 还是把基础打好 Java编程思想 还可以 解决方案五

内存泄露-内存泄漏,在什么地方释放内存,真心求教啊!!!

问题描述 内存泄漏,在什么地方释放内存,真心求教啊!!! // ServerDlg.cpp : implementation file // #include "stdafx.h" #include "Server.h" #include "ServerDlg.h" #ifdef DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE_; #end

update-SQL 根据表A的数据修改表B,当一条表B的数据匹配到多条表A的数据时选其中一条修改

问题描述 SQL 根据表A的数据修改表B,当一条表B的数据匹配到多条表A的数据时选其中一条修改 update B set _flg = 'update', b_string1 = t4.a_string1, b_string2 = t4.a_string2, b_string3 = t4.a_string3, b_string4 = t4.a_string4, b_string5 = t4.a_string5, update_by = current_user, update_date = ge

关于利用fgets()改变文件指针位置再利用fprintf()更新文件数据的一些小疑问求教

问题描述 关于利用fgets()改变文件指针位置再利用fprintf()更新文件数据的一些小疑问求教 下面便是一个更新卡信息文件数据的函数updateCard int updateCard(const char* CardPath,const Card* pcard,int nIndex) {//更新卡信息文件中的数据,CardPath为文件路径,pcard为指向要更新的卡信息结点的指针,nIndex为卡信息在文件中的索引号(即在卡信息文件中的行数) FILE* fp = NULL; long

mysql两表数据匹配,更新结果为什么为0

问题描述 mysql两表数据匹配,更新结果为什么为0 update crm_customerhr_postset crm_customer.beseats_depid=hr_post.dep_idcrm_customer.beseats_depname=hr_post.depnamewhere hr_post.emp_id=crm_customer.BeSeats 解决方案 0就是没有数据更新呗,没有符合条件的数据吧 解决方案二: 字段名合适的没?表里边有没有这些字段

sql server-求助大神一个ASP.NET下增加删除数据的问题,真心请教!

问题描述 求助大神一个ASP.NET下增加删除数据的问题,真心请教! public partial class _Default : System.Web.UI.Page { string constr = "server=192.168.1.113;database=HH;Uid=sa;pwd=000000;"; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Bind(); } }

java菜鸟真心求教大神,谢谢!!!!

问题描述 java菜鸟真心求教大神,谢谢!!!! 我是大三学生,在学校有学些java的基础语言,想要深入学习java,请教大神分享心得 解决方案 这个帖子首先发错位置了,这里是技术区,你问的属于咨询类问题 java基础可以学习核心基础卷系列 然后有java编程思想 java深入虚拟机等 解决方案二: 数据库,网络,等等,够你学 解决方案三: 首先Java se基础,在学基础的时候会学到一些数据库,网络的基础知识,然后可以向这两个方面去深入发展 解决方案四: 如果基础不好,可以学一下<Java编程