Java数据结构算法问题,求最优解

实际开发中需要解决的问题,我在这里简化成简单的Map:

 Map<String,Integer> map=new HashMap<String,Integer>();
 map.put("tom",78);
 map.put("jerry",42);
 map.put("marry",12);
 map.put("hugh",37);
 map.put("aaron",23);
 map.put("john",40);
 map.put("adam",67);
 map.put("white",43);
 map.put("chris",13);

有这样一个map,key是名字,value是每个人拥有的钱
有一件物品是240元,需要所有人一起凑钱购买,求最优解:
1、第一优先的是人数,凑够钱买物品的人的组合里,人数最少的
2、第二优先的是价格,要求超过240,但是离240最接近的一组,因为从大到小排列一定能得到人数最少的,但是可能会比目标数额大很多,导致找零太多

最后要求返回满足上面两个条件的最优解,也就是这个组合里的所有元素

9个回答

    public static List<Integer> limitValSubsequence(int[] sequence, int limitValue) {
        List<Integer> retList = new ArrayList<>();

        int[] sortSeq = Arrays.copyOf(sequence, sequence.length);
        Arrays.sort(sortSeq);

        int sumVal = 0;
        int k = 0;
        for (int i = sortSeq.length - 1; i >= 0; i--) {
            sumVal += sortSeq[i];
            if (sumVal > limitValue) {
                k = sortSeq.length - i;
                break;
            }
        }
        if (k == 0) {
            System.err.println("No subsequence math condition to > " + limitValue);
            return retList;
        }

        limitValSubsequencePart(sortSeq, k, sequence.length - 1, limitValue, retList);
        return retList;
    }

        public static int limitValSubsequencePart(int[] sequence, int count, int right, int limitValue,
            List<Integer> outSeq) 
    {
        outSeq.clear();
        if (count <= 0) return Integer.MIN_VALUE;       //不可选了
        if (right < 0) return Integer.MIN_VALUE;
        int curVal = sequence[right];
        if (limitValue > count * curVal) return Integer.MIN_VALUE;

        if (right == 0) {
            if (curVal > limitValue && count == 1) {
                outSeq.add(curVal);
                return curVal;
            } else {
                return Integer.MIN_VALUE;
            }
        }

        //if curVal in
        List<Integer> curInSeq = new ArrayList<>();
        int inValue = Integer.MIN_VALUE;    //预设无效
        if (curVal > limitValue && count == 1) {
            inValue = curVal;
            curInSeq.add(curVal);
        } else {
            List<Integer> inSubSeq = new ArrayList<>();
            int subVal = limitValSubsequencePart(sequence, count - 1, right-1, limitValue - curVal, inSubSeq);
            if (subVal == Integer.MIN_VALUE) {//无效
                inValue = Integer.MIN_VALUE;
            } else {
                inValue = curVal + subVal;
                curInSeq.addAll(inSubSeq);
                curInSeq.add(curVal);
            }
        }

        //if curVal not in
        List<Integer> curOutSeq = new ArrayList<>();
        int outValue = limitValSubsequencePart(sequence, count, right-1, limitValue, curOutSeq);

        if (inValue == Integer.MIN_VALUE) {
            outSeq.addAll(curOutSeq);
            return outValue;
        } else if (outValue == Integer.MIN_VALUE) {
            outSeq.addAll(curInSeq);
            return inValue;
        } else {
            if (curInSeq.size() < curOutSeq.size()) {
                outSeq.addAll(curInSeq);
                return inValue;
            } else if (curInSeq.size() > curOutSeq.size()) {
                outSeq.addAll(curOutSeq);
                return outValue;
            } else {
                if (inValue > outValue) {
                    outSeq.addAll(curOutSeq);
                    return outValue;
                } else {
                    outSeq.addAll(curInSeq);
                    return inValue;
                }
            }
        }
    }  

  public static void testLimitValArray() {
    final int NUMBER = 150;
    int[] inputs = new int[NUMBER];
    for (int i = 0; i < NUMBER; i++) inputs[i] = i+1;
    int limitValue = NUMBER * 10;
    long startTime = System.currentTimeMillis();
    List<Integer> vals = limitValSubsequence(inputs,  limitValue);
    int sumVal = 0;
    for (int val : vals) sumVal += val;
    long usedTime = System.currentTimeMillis() - startTime;
    System.out.println("testLimitValArray limit:" + limitValue +  ", sum:" + sumVal + ", elems:" + vals + ", usedTime:" + usedTime);
  } 

思路和qq_38843185 是一致的。
testLimitValArray limit:1500, sum:1501, elems:[46, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150], usedTime:9565

1,把所有的value取出来,用9层for循环 for(int i =0 ,i < =1 ,i++) 判断结束条件为 sum = 78i+42j+12x+。。。。 > =240;
2, 把每种方式取出来,做比较先去人数最少的 就是变量0最多的一个。如果相等比较钱数最小的,
如果你这个最近的一组得有一个区间来判断,如果为240-260直接,或者260-280之间这种,就可以判断一下钱满不满足条件,不满足的就取下一个
。大致的想法就这样,具体实现还得自己根据需求优化

simuyinxi
simuyinxi emmmm,这只是个例子,我们实际开发场景可能就不是9个对象了,可能动辄一两百个,总不能用一两百个循环吧.....这个要用到算法,好像是深度优先遍历什么的,要用递归的,我大概知道方向,但是还是不会解决
一年多之前 回复
yugehha
小流氓dy 回复Z143430039: 嗯 。。
一年多之前 回复
weixin_39159757
Aries_Jacky 不错
一年多之前 回复
Z143430039
第一弧度 9层? 要是十个键值对,得用10层循环?
一年多之前 回复
qq_40869023
qq_40869023 嗯嗯
一年多之前 回复

分析一下哈:这个题的两个需求,一个是人要少,还有一个是钱要刚好多出一点点或者是正好。
对于第一个要求,从大到小排然后往上加就好了,第二个需求就比较难弄了,要求是在第一个基础上,从上往下捋顺,具体有点儿复杂,如果条数多的话,值得好好想一想写一写。
我初步的思路就是先用第一个条件,卡出那个个数。然后用这个个数来对钱数的组合进行限制。
比方说个数是4,就给要选出的4个数,排上号1234,规定1>=2,2>=3,3>=4;mark

weixin_39139129
daniel_miau 回复weixin_42066003: 看我下面的评论的评论,应该算的就挺简单的了
一年多之前 回复
weixin_39139129
daniel_miau 回复simuyinxi: 看我下面的评论的评论,应该算的就挺简单的了
一年多之前 回复
weixin_42066003
weixin_42066003 谢谢
一年多之前 回复
simuyinxi
simuyinxi 好的,谢谢提供思路
一年多之前 回复
weixin_39139129
daniel_miau 没写完等我再想想
一年多之前 回复

先排序得到满足第一个条件的人数K,接下来就是一个最接近K-SUM问题,不过只取超过的SUM,大致思路就是这样。

simuyinxi
simuyinxi 谢谢,你的思路是对的,我也在网上按照你的思路找到了相应的算法解答,后面有个大佬把代码给出来了,就只能把答案给他啦!还是谢谢你的帮助!
一年多之前 回复

接上上面的,拿到个数以后,再把数据分一分再遍历,
我拿你给的数据来试试。
图片说明
求出类似这么一个平均数的东西,240÷5=48
然后用差值算。给它们分开。

weixin_39139129
daniel_miau 啊,是不是可以这样,你看,取到头五个数,然后头五个数相加是270比240大30,把30给减出来,用这五个数分别减去30,然后查一查后面的数有没有,如果有的话直接替换了就正好了,如果没有再减去29看有没有,以此类推,直到减至1如果还没有,那就是这五个数了
一年多之前 回复

//获取最大个数方法就不写了。例子是3个数,思路是获取任意3个数据元素组合 结果存到map中 最后比较map结果,完全按照需求啊 求分

 int a[] = {60,55,50,45,40,30,20,15};
        int target = 120 ;
        //首先获取最大个数
        int minNum = 3; 
        Map<String,Integer> map = new HashMap<String,Integer>();
        //取出数组下任意元素组合下标
        for(int i=0;i<=(a.length-minNum+1);i++){
            for(int j=0;j<a.length;j++){
                String flag = "";
                int maxIndex = 0;
                int total = 0;
                for(int k=0;k<minNum;k++){
                    if((k+1) == minNum){
                        flag = flag + (k+j+i)+",";
                        maxIndex = k+j+i;
                        if(maxIndex >= a.length){
                            break;
                        }
                        total = total + a[(k+j+i)];
                    }else{
                        flag = flag + (k+i)+",";
                        total = total + a[(k+i)];
                    }
                }
                if(maxIndex >= a.length){
                    break;
                }
                System.out.println(flag + "======" + total);
                map.put(flag, total);
            }
        }

        //对map结果进行120匹配即可
a718089112
a718089112 第二个for循环条件可以优化一下:int j=0;j<a.length-minNum;j++
一年多之前 回复

几点小建议,也不一定正确:
1、基础数据的集合,即map,最好事先用TreeMap,因为容器内元素天然有序,对我们后面的计算会减少很多时间。
2、得到一个有序集合后,先从大到小取到满足条件的最少人数。
3、剩下的就是遍历,比较了;
ps:这种问题肯定避免不了遍历和递归这种操作,最优方案无非是在时间复杂度和空间复杂度上做权衡,如果是实际业务上的问题,再结合一些现实因素;

如果是线上的问题,实在不行引入一些并行计算的东西,也不失为解决方案~~~

这不就是典型的动态规划题,为什么上面的搞这么绕

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求最优解的问题
有一个5x5的格子,每个格子内填入1-4 4个数字,其中:rn1. 1可以填入任意的格子rn2. 2的上下左右至少有一个1rn3. 3的上下左右至少有一个1和2rn4. 4的上下左右至少有一个1和2和3rnrn请问如何才能使这些格子的和为最大值呢 ? rnrn
多叉树求最优解问题
阿里巴巴的ODPS大数据处理平台可以启动一系列并发的作业,每个作业中存在一系列存在父子关系的任务。每个任务用一个三元组表示–(任务id,父任务id,执行开销),其中任务id是一个正整数(>0);父任务id为0表示根任务,每个作业存在一个唯一的根任务,并且,所有的任务,如果其父任务id不为0,那么必然是一个已经存在的根任务id;执行开销是一个正整数(>0)。系统中至少存在一个作业。举例如下: (1,
求最优解
一个从C1~Cn的序列,Ci与Cj之间的冲突为Cij,如何将它们分到m个桶里,使总体冲突最小(如:m=25,n=1000)
java 最优解问题
现有N个表达式 极为f1(x) f2(x)......fn(x) 其中 x的和为确定的数A 并且x为大于0的整数,求 f1(x)+f2(x)+....fn(x)最大,用什么算法呀。
地图着色问题求最优解
与经典的四色着色不同,是对一个已知的图进行着色分析,求出最少可以用几种颜色着色,rn其中,图是用邻接表法表示的,图的边相连表示接壤rn着色规则:接壤的顶点不能用一种颜色着色rnrn我想用穷举法找出最优解,按1,2,3。。。这个次序分组,看是否符合条件,先找到的解一定最优,rn但在将图分组的时候遇到麻烦,怎样将有n个定点的图分成k个组啊?k<=nrnrn初学者求助!!谢过~rn
动态规划算法-----找零钱问题(求最优解)
动态规划算法通常用于求解具有某种最优性质的问题。动态规划算法与分治法类似,其基本思想都是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到的子问题往往不是互相独立的。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表(备用表)来记录所有已解
求数据结构算法
啥都行,每层楼的最好不一样,谢谢
POJ3009 求最优解的深搜
题目链接:POJ–3009 反正我用的深搜,不过忘了是在求最优解,找到一个解救直接返回了,so。。。查了一晚上没找到。 居然水过了样例以及discuss中的数据。/* Problem: 3009 User: ChenyangDu Memory: 664K Time: 188MS Language: G++ Result: Accepted */ #inclu
DP-求最大值求最优解
Description 分配了8个任务,时间不冲突的情况下,挣得工资最多 Solution 1.求OPT(i) 如果选了第i个,公式为第i个能挣得钱数加上上一个能选的OPT Vi+OPT(prev(i)) 如果没选第i个,公式就是求上一个能赚的最多的钱数 OPT(i-1) 解释 OPT(i)做第i个任务,能赚多少钱 prev(i)做第i个任务,上一个能做的任务的位置 2.求出前置任务 3. ...
几种优化算法(求最优解)
几种优化算法,先简单备注下,今后接触到再看: 参考资料: http://blog.sina.com.cn/s/blog_6a1bf1310101hhta.html
约束条件下求最优解
约束条件下求最优解        在求有约束条件的最优解时,拉格朗日乘子法和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件。 一、拉格朗日乘子法              假设一个拉格朗日系数λ
遗传算法求最优解
matlab程序,通过遗产算法的迭代,通过交叉,变异,二值化等过程,
VC++简单编程,求最优解。
(a+b)的n次幂的展开式中各项的系数很有规律,对于n=2,3,4时分别是:1 2 1, 1 3 3 1,1 4 6 4 1。这些系数构成了著名的杨辉三角形:rn 1 rn 1 1 rn 1 2 1rn 1 3 3 1rn 1 4 6 4 1 rn 1 5 10 10 5 1rn试计算给定n对应的杨辉三角形,输出到文件中。rn是给定n值,然后输出相应行数的杨辉三角数。
贪心算法求最优解
贪心算法求最优解
求一个经典游戏的最优解
最近在玩一个flash游戏http://www.4399.com/flash/6356_2.htm?1024#22rn每玩一局就会消耗或者获得一定数量的水滴,怎么样才能使消耗的水滴数最少(或者是获得的水滴数最多)?rn显然问题可以被扩展,即把6*6的方阵扩展为n*n,同时增加每个方格所能包含的水滴数的上限。rn希望各位高手给出一个求最优解的算法。盲目搜索的复杂度显然是较高的,如果可以在数学模型上将问题进行简化就好了,或者是可以给出一个较好的启发函数。先谢谢各位看帖的GGMM了,大家帮忙
最优解问题
最短路径(shortest path) 游商问题(traveling salesperson problem TSP) 装箱问题(bin packing) 序列对比(sequence alignment) 背包问题(knapsacks) 贪婪算法(greedy algorithm):在每一个步骤都最大化你的价值 穷举法(brute force):罗列每一种可能的结果,再对比出最优解 动态...
坐标轮换法求最优解
主要通过matlab编程利用坐标轮换法求解无约束非线性规划问题。给出了具体的操作步骤和方法
粒子群优化算法求最优解
%程序名称:求解约束优化问题的改进粒子群优化算法 %程序功能:求解带各种约束条件的优化问题 %输入条件:各种初始条件,以及设定参数 %输出数值:最优解位置以及函数极小值
*求一个组合问题的最优解*
有N个数字,第一次从中随机取出K个数字(忽略先后顺序),第二次随机取出K-1个数字(忽略先后顺序),求第二次取出K-1个数的最少组合数,使得第二次取出的组合中至少有一组(K-1个数字)必然包含在第一次取出的K个数字中。rnrn如有9个数字,第一次随机取出8个数字,第二次取出7个数字进行全组合,使得第二次的组合中有一组7个数字必然包含在第一次取出的8个数字中的最少组合数算法。
java数据结构算法
java 数据算法 我们学习一些算法 就和C数据结构一样.这样我们以后可以在别人的算法上设计自己的算法
java 数据结构算法
java, 中文版 数据结构算法 值得大家下载,非常不错电子书
数据结构算法JAVA
经典的JAVA版数据结构,值得研究.内容丰富、介绍的很全面
JAVA与数据结构算法
java实现数据结构,算法
最大子序列和算法最优解--Java
public class MaxSubSumClass { public static void main(String[] args) { int[] array = {2,6,9,-10,-30,90}; System.out.println(maxSubMax(array)); } public static int maxSubMax(int[] array)...
请教关于循环求最优解的问题!
for(double a=0;a<1;a=a+0.00001)rn double sumError=0;rn for(int i=1;i
请教一个电路布线求最优解的问题
[code=C/C++]rn#include rnusing namespace std;rntemplate rnstruct LinkNodern T data;rn LinkNode* next;rn;rnrnrntemplate rnclass LinkedQueuernpublic:rn LinkedQueue():rear(NULL),front(NULL)rn ~LinkedQueue()makeEmpty();rn bool EnQueue(const T& x);rn bool DeQueue(T& x);rn bool getFront(T& x)const;rn void makeEmpty();rn bool IsEmpty()constreturn(front==NULL)?true:false;rn int getSize()const;rn friend ostream& operator<<(ostream& os,LinkedQueue& Q);rnprotected:rn LinkNode*front,*rear;rn;rnrntemplate rnvoid LinkedQueue::makeEmpty()rn LinkNode *p;rn while(front!=NULL)rn p=front;rn front=front->next;rn delete p;rn rn rnrnrntemplate rnint LinkedQueue::getSize()constrn int count=0;rn LinkNode *p=front;rn while(p!=NULL)rn ++count;rn p=p->next;rn rn return count;rnrnrntemplate rnbool LinkedQueue::getFront(T& x) constrn if(front==NULL) return false;rn x=front->data;rn return true;rnrnrntemplate rnbool LinkedQueue::EnQueue(const T& x)rn if(front==NULL)rn rear=front=new LinkNode;rn front->data=x;rn if(front==NULL)rn return false;rn rn elsern LinkNode *p=new LinkNode;rn if(p==NULL)rn return false;rn p->data=x;rn rear->next=p;rn rear=rear->next;rn rn return true;rnrnrntemplate rnbool LinkedQueue::DeQueue(T& x)rn if(IsEmpty()==true)rn return false;rn x=front->data;rn LinkNode *p=front;rn front=front->next;rn delete p;rn return true;rnrnrnrntemplate rnostream& operator<<(ostream& os,LinkedQueue& Q)rn cout<<"The number of the Queue is:"< *p=Q.front;int i=0;rn while(p!=NULL)rn cout<data<next;rn rn[/code]rnrn[code=C/C++]rn#include "队列模板.cpp"rnrnclass Positionrnpublic:rn int row;rn int col;rn Position()rn Position(int x,int y):row(x),col(y)rn //Position(Position& P2)row=P2.row;col=P2.col;rn friend ostream& operator<<(ostream&,Position& );rn;rnrnostream& operator<<(ostream& os,Position& item)rnrn os<<'<'<'<<' ';rn return os;rnrnrnint grid[9][9]=rn 1,1,1,1,1,1,1,1,1,rn 1,0,0,1,0,0,0,0,1,rn 1,0,0,1,1,0,0,0,1,rn 1,0,0,0,0,1,0,0,1,rn 1,0,0,0,1,1,0,0,1,rn 1,1,0,0,0,1,0,0,1,rn 1,1,1,1,0,0,0,0,1,rn 1,1,1,1,0,0,0,0,1,rn 1,1,1,1,1,1,1,1,1rn;rnrnrnrnbool FindPath(Position start,Position finish,int& PathLen,Position*& path)rnrn Position offsets[4];rn offsets[0].row=0;offsets[0].col=1;rn offsets[1].row=1;offsets[1].col=0;rn offsets[2].row=0;offsets[2].col=-1;rn offsets[3].row=-1;offsets[3].col=0;rn if(start.row==finish.row&&start.col==finish.col)rn PathLen=0;return false;rn int NumOfNbrs=4,i,j;rn Position here,nbr;rn here.row=start.row;here.col=start.col;rn grid[start.row][start.col]=2;rn LinkedQueue Q;rn dorn for(i=0;i!=NumOfNbrs;i++)rn nbr.row=here.row+offsets[i].row;rn nbr.col=here.col+offsets[i].col;rn if(grid[nbr.row][nbr.col]==0)rn grid[nbr.row][nbr.col]=grid[here.row][here.col]+1;rn if(nbr.row==finish.row&&nbr.col==finish.col)rn break;rn Q.EnQueue(nbr);rn rn rn if(nbr.row==finish.row&&nbr.col==finish.col) break;rn if(Q.IsEmpty()==true)return false;rn if(Q.DeQueue(here)==false)rn cout<<"Queue out Error!"<=0;j--)rn path[j]=here;rn for(i=0;i!=NumOfNbrs;i++)rn nbr.row=here.row+offsets[i].row;rn nbr.col=here.col+offsets[i].col;rn if(grid[nbr.row][nbr.col]==j+2)rn break;rn rn here=nbr;rn rn return true;rnrnrnint main()rn Position st(4,3),end(5,4);rn int length=0;rn Position *p=NULL;rn if(FindPath(st,end,length,p)==true)rn rn for(int i=0;i!=length;i++)rn cout<
有关于韩信分油的问题(求最优解)
一道数据结构的课设,就是韩信分油的故事。就是用3斤、7斤和10斤这样三种容器来把十斤油分出两个5斤。要求建立合适的数据结构。求出分油的最优解。小弟没有思路。各位大人赐教。
逆置字符串问题求最优解!
#includern#includernint main()rnrn char *str = "abcdefghijk";rn /*Add your code*/rnrn return 0;rnrn求逆置字符串的最优算法,要求时间和空间复杂度尽可能小,虽然是简单了点,但是还是希望各位高手不吝赐教,集思广益,谢谢!
动态规划——求数字三角形最优解和最优路径
求数字金字塔最优解和最优路径
求一“银行存款最优解”的算法
假设银行整存整取存款不同期限的月息利率分别为:rn0.63% 期限=1年rn0.66% 期限=2年rn0.69% 期限=3年rn0.75% 期限=5年rn0.84% 期限=8年rn利息=本金*月息利率*12*存款年限。rn现在某人手中有2000元钱,请通过计算选择一种存钱方案,使得钱存入银行20年后得到的利息最多(假定银行对超过存款期限的那一部分时间不付利息)。rn------------------------------------rn我嵌套了5个for 循环,得出了124种方案,其中最大利息方法是 年限为一年的存1年,年限为三年的存1年,年限为八年的存2年,最大利息为3260.84rn但是问题在与先存一年的,再存三年的,然后存八年的 和 先存八年的,再存一年的,然后存三年的,得到的结果肯定不等,rn如果在这124种方案中再做组合,然后求出最大利息,因该没错。但是这样做起来很烦。有没有简单点的方法来实现这个程序的功能。请高手指教。rnrn
求Hibernate批量插入数据库最优解!
框架用的hibernate+spring+struts,我导入两百万条数据,如何批量导入,给段代码我参考下谢谢各位了~~~
数据结构算法数据结构算法数据结构算法
数据结构算法数据结构算法数据结构算法数据结构算法
求群伤最优解的位置
在一个平面里分布若干个半径为r的园,他们互不相交,他们的圆心随机分布.rn现在平面中指定一个点A,求另一个点Brn要求:rn1.A和B之间的距离不大于distrn2.已B为圆心,R为半径的原和上面随机分布的园相交和饱含的个数最多rn3.R > r
HDU 1548 BFS求最优解
A strange lift Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23167    Accepted Submission(s): 8395 Problem Description There is a
梯度下降算法求一元凸函数的最优解
梯度下降算法:        X(n+1) = X(n) - ηf'(X)该算法可以用在求一元凸函数的极值(当然也可以求多元凸函数),前提是凸函数。这里使用一元二次方程为例。// 梯度下降算法求一元凸函数的最优解(极值点) // 梯度下降算法 X(n+1) = X(n) - ηf'(X) // 设一元凸函数 y = ax^2 + bx + c (a &amp;gt; 0) // 1.构造一元凸函数 fl...
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview

相似问题

0
EM算法在进行GMM参数估计时怎么避免陷入局部最优,用禁忌搜索算法可以吗?有会的吗?求大佬帮主
4
java序列化算法C++实现
1
数据结构算法之汇率问题的求解的探讨
1
一个用C语言的数据结构算法的选择问题?谁知道
1
求一个算法,求无向连通图的两点之间最近距离,设权值都为1,考试急用,谢谢大神
1
哈希表 数据结构和算法
2
数据分析数据结构,有没有相关的机器学习算法? 急求大神指点
1
有没有一种机器学习算法能够从几组数据中直接输出第几组数据是最优的?
0
Redis去重算法Bloom Filter算法的通用工具类(java实现),有木有
1
数据结构上的一个线性表的冲突的解决,是不是用哈希算法怎么采用C语言的实现方式
0
数据结构算法的活动规划问题,采用C语言编程的技术的实现的方式
0
判断给定的解是不是问题的最优解的一个算法, C语言如何才能实现它的
1
JAVA 排班规划算法 planner有人了解过吗?
0
数据结构里的剪枝算法的问题运用C语言编程技术的实现的做法
0
数列累积核的问题,数据结构的算法怎么利用C语言的形式实现
0
运用合理的数据结构求方位的问题算法,利用C程序语言怎么才能解决这个问题
2
用普里姆算法或克鲁斯卡尔算法求下面无向带权图的最小生成树
2
.NET和Java高精度算法应该用什么类
3
求一个Java或者JS代码的算法