求助:找两个浮点数组中各项的相等关系

问题描述

有两个浮点数数组,两个数组的长度不一定相等,两个数组的各项的合计相等。如何能迅速找到两个数组中各项的相等关系,优先找一对一,然后是一对二、一定三……,最后是多对多比如:A={30,20,80}B={20,30,45,35}应该找到:A[1]=B[2]A[2]=B[1]A[3]=B[3]+B[4]

解决方案

解决方案二:

一对一写个join就能得到,二以上除了循环或者递归,我想不出其他办法
解决方案三:

除了一对一的特例外都需要用到Combination(求组合)方法
解决方案四:

我的想法是先找到一对一的,并从A、B中剔除这些项。然后在将剩余从2到n-1组合的合计计算出来再比较,但是感觉也挺繁琐的,有没有简介的算法。引用2楼xuzuning的回复:

除了一对一的特例外都需要用到Combination(求组合)方法

你能写的示例吗
解决方案五:

不久前过个类似的
解决方案六:

//_ooOoo_//o8888888o//88"."88//(|-_-|)//O=/O//____/`---'____//.'\||//`.///\|||:|||/////_|||||-:-|||||-//||\-///||//|_|''---/''||//.-__`-`___/-.///___`..'/--.--`..__//.""'<`.____<|>_/___.'>'"".//||:`-`.;`_/`;.`/-`:||//\`-.___/___/.-`////======`-.____`-.________/___.-`____.-'======//`=---='////.............................................//佛祖镇楼BUG辟易//佛曰://写字楼里写字间,写字间里程序员;//程序人员写程序,又拿程序换酒钱。//酒醒只在网上坐,酒醉还来网下眠;//酒醉酒醒日复日,网上网下年复年。//但愿老死电脑间,不愿鞠躬老板前;//奔驰宝马贵者趣,公交自行程序员。//别人笑我忒疯癫,我笑自己命太贱;//不见满街漂亮妹,哪个归得程序员?
解决方案七:

思路先对2个数组排序升序。方便后期计算int[]a,int[]b;for(i=0,i<a.length.I++){fun1(a[i],b)}fun1(intt1,int[]t2){自己写个函数判断t1是否能数组t2的各种组合如果可以记录下来.out(a和b中的数组组合)}ok了
解决方案八:

动态规划算法

时间: 2024-10-26 22:14:26

求助:找两个浮点数组中各项的相等关系的相关文章

C++通过自定义函数找出一个整数数组中第二大数的方法

  本文实例讲述了C++通过自定义函数找出一个整数数组中第二大数的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 const int MINNUMBER = -32767 ; //2字节的Int 0x8000-1, //4字节的Int 0x80000000-1 -2147483647 int find_sec_max( int data[] , int count) { int

采用归并排序算法查找两个字符串数组中的不同数据

  现在项目中有需求比较两个字符串数组,找出其中不同的部分,并保存到本地txt.实现方式每个人都有自己的思路,这里提供一种通过归并排序实现的方式供大家参考.   基本思路是数组A和数组B对比,使用数组a来保存数组A中比数组B中多的元素(即在A中存在,B中不存在的元素),b来保存数据B中比数组A中多的元素(即B中存在,A中不存在的元素).开始需要分别调用Sort()函数对A.B数组进行排序,然后使用CompareTo从两个数组中第一个数组进行比较,当A.0(A中第一个元素)>B.0时A.Compa

两个有序数组中查找第K大数

题目:两个数组A.B,长度分别为m.n,即A(m).B(n),分别是递增数组.求第K大的数字.   方法一: 简单的办法,使用Merge Sort,首先将两个数组合并,然后在枚举查找.这个算法的时间复杂度是O(m+n).空间复杂度也是O(M+n). 这个方法其实没有考虑到有第K大数为两个相同数字的情况.   方法二: 这里需要两个前提条件, 1.如果K是中位数,则(M+n)是奇数还是偶数是有关系的.如果是奇数,那么中位数唯一,如果是偶数就有两个中位数,可以随便取一个. 2.如果找到的第K大数是x

[剑指Offer]40.数组中只出现一次的数字

题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 思路 我们直到异或的性质: 任何一个数字异或他自己都等于0. 所以说我们如果从头到尾依次异或每一个数字,那么最终的结果刚好只出现一次的数字,因为成对出现的两次的数字全部在异或中抵消了. 这道题中有两个数字只出现一次.这样的话我们得到的结果就是这两个数字的异或结果.因此我们想办法把原数组分成两个子数组,使得每个子数组包含一个只出现一次的数字.这样我们就可以对这两个子数组分别异或,就能得到两个只出现一

JS中取二维数组中最大值的方法汇总_javascript技巧

在JavaScript中可以通过内置的 Math.max() 的最大值,但是要从多重数组中取出最大值,还是有一定的难度. 问题描述 假设你有一个数组,而且这个数组中包含了数字的子数组,而我们要做的是从数组中的每个子数组中返回其最大的那个最大数. 基本解决方案 function largestOfFour(arr) { var results = []; // 创建一个results变量来存储 // 创建一个外层循环,遍历外层数组 for (var n = 0; n < arr.length; n

如何寻找数组中的第二大数_C 语言

方法一: 复制代码 代码如下: #include "stdio.h"#include "stdlib.h"//初始化最大值为a[0],次大值为a[1],遍历一次,每次比较并更新最大值和次大值,最后就可以得到次大值.int findsecondmaxvalue(int *a,int size){    int i,max,s_max;    max=a[0];  //最大值 s_max=a[1];  //次大值    for(i=0;i<size;i++)   

查找数组中第二大的数值

题目:写一个函数找出一个整数数组中,第二大的数.[Mirosoft] 解答: int FindSecondMaxValue(int src[], int count){    int max = 0;    int secondMax = 0;    if (count==0) return secondMax;    if (count==1)    {        return src[0];    }    else if (src[0] > src[1])    {        ma

c++-求助:数组中找两个最大的数

问题描述 求助:数组中找两个最大的数 //算法一:依次扫描,分别找出A[x1]和A[x2] void max2_1(int A[], int lo, int hi, int &x1, int &x2) //1 < n = hi - lo { for(int i = lo + 1, x1 = lo; i < hi; i++) //扫描A[lo,hi),找出A[x1] { if(A[x1] < A[i]) x1 = i; //hi-lo-1=n-1 } int x2L = l

找出两数组中不同的数据,并查看他们在以前数组中的索引值

问题描述 找出两数组中不同的数据,并查看他们在以前数组中的索引值 var aa = [1,21,21,21,28]; var bb = [3,4,27,39,21]; var cc = []; var tmp = aa.concat(bb); var o = {}; for (var i = 0; i < tmp.length; i ++){ (tmp[i] in o) ? o[tmp[i]] ++ : o[tmp[i]] = 1; } for (x in o){ if (o[x] == 1){