草庐IT

algorithm

全部标签

java - 确定可能的项目组的算法

我绞尽脑汁想做这件事,但它让我筋疲力尽。我知道这并不复杂。我有一些元素,这个数量可以等于或大于三。然后我需要确定将完成总数的项目组的可能组合。唯一的限制是组应该有三个或更多项目,但不超过(但包括)七个项目。例如:如果我有7个项目,那么我可以有这些可能的组:1组7个项目。1组4项和1组3项。如果我有12个项目,我可以有这些可能的组:4组,每组3个项目。3组,每组4个项目。2组6个项目。1组7项+1组5项。2组3项和1组6项。1组3项、1组4项和1组5项。...我想到了递归并开始实现算法。这显然是行不通的。我不擅长递归。很多。//InstanceFieldspublicList>optio

java - 基于文本搜索的算法未按预期运行

更新我已经用其他SO用户建议的较新代码更新了问题,并将澄清之前存在的任何含糊不清的文本。更新#2我只能访问相关应用程序生成的日志文件。因此,我只能在日志文件的内容范围内工作,并且不可能有超出该范围的解决方案。我将稍微修改示例数据。我想指出以下关键变量。线程ID-范围从0..19-一个线程被多次使用。因此ScriptExecThread(2)可能会在日志中多次出现。Script-每个线程都会针对特定文件运行脚本。同样,同一脚本可能在同一线程上运行,但不会在同一线程和文件上运行。File-每个ThreadID在File上运行一个Script。如果Thread(10)正在myfile.fil

java - 如何使用java获得weka中的最近邻居

我一直在尝试使用与weka机器学习库一起使用的Ibk最近邻算法。我知道如何对实例进行分类,但我想实现协同过滤功能,所以我需要实际获取最接近感兴趣对象的实际对象列表。在weka中,我如何使用它的javaAPI真正做到这一点? 最佳答案 这个怎么样weka.core.neighboursearch.LinearNNSearchknn=newLinearNNSearch(trainingInstances);//dootherstuffInstancesnearestInstances=knn.kNearestNeighbours(tar

java - 如何在 Java 中找到排序的排列

我想对一个数组进行排序,并找到排序顺序中每个元素的索引。因此,例如,如果我在阵列上运行它:[3,2,4]我会得到:[1,0,2]在Java中有没有简单的方法来做到这一点? 最佳答案 假设您的元素存储在一个数组中。finalint[]arr=//elementsyouwantListindices=newArrayList(arr.length);for(inti=0;icomparator=newComparator(){publicintcompare(Integeri,Integerj){returnInteger.compar

java - 我的校验和算法有什么问题?

我正在为比赛做一些练习题,我一整天都在研究这个算法。如果您想阅读整个问题here是的,但我会给你一个简短的解释,因为这是一个很长的问题。问题:您必须通过将ID号插入校验和来验证ID号。在将ID插入算法之前,需要将ID转换为base-10。ID号以字母开头:Z=0,Y=1,X=2,W=3,V=4我没有遇到从这些字母到base-10的转换问题,我的转换代码很好,所以我将向您展示问题的下一部分:第2部分:获得以10为基数的ID号码后,您需要将其插入以下算法:注意:每个ID号码的长度必须为8位数字,0将位于至少8位数字的数字之前。checksum=F(0,d0)XF(1,d1)XF(2,d2)

java - ArrayList.sort() 与 PriorityQueue

这个问题在这里已经有了答案:Java-PriorityQueuevssortedLinkedList(11个答案)关闭4年前。我需要支持比读取更多的插入并保持数据排序。哪个性能更好:使用提供比较器的PriorityQueue或使用ArrayList并在每次插入后调用.sort()?每次调用.sort()都感觉不对,但我说不清为什么。

java - 如何在几百万个列表中找到 1 个或多个部分相交的时间间隔?

我需要一个高效的索引/搜索算法和/或数据结构的想法,以确定时间间隔是否与列表中的零个或多个时间间隔重叠,请记住完全重叠是一种特殊情况部分重叠。到目前为止,我还没有想出任何快速或优雅的东西......考虑一组间隔,每个间隔有2个日期-开始和结束。间隔可大可小,可以部分重叠,也可以完全不重叠。在Java表示法中,是这样的:interfacePeriod{longgetStart();//millissincetheepochlonggetEnd();booleanintersects(Periodp);//trivialintersectioncheckwithanotherperiod}

java - NoSuchAlgorithmException : Algorithm HmacSHA1 not available

查看下面的java行:Mac.getInstance("HmacSHA1");如果我把它放在一个简单的测试程序中,它在我的服务器上运行没有问题。但是,如果我在容器中使用这一行,我会得到java.security.NoSuchAlgorithmException:AlgorithmHmacSHA1notavailableatjavax.crypto.Mac.getInstance(DashoA13*..)两种情况都使用相同的JDK安装。在谷歌搜索了一下之后,我设法通过做两件事让它工作:从$JAVA_HOME/jre/lib/ext复制sunjce_provider.jar到容器的lib目

java - 合并重叠的日期范围 - Java

我有一个如下所示的任务类(使用Java8TimeAPI)。classTask{LocalDateTimestart;LocalDateTimeend;SetactionItems;}我有两个包含此类任务实例的排序列表(首先按开始,然后按结束),比方说ListtasksList1和ListtasksList2.我想合并重叠的任务(通过在需要时打破任务,并将重叠的其他任务中的actionItems添加到一个新的任务对象中)。例如,假设我有一个名为T1的任务,从01/01/2015开始到01/31/2015结束,其中包含操作项A和B。然后用户创建了一个从01开始的新任务T2/15/2015并

java - 一种具有数万个非常大文件的 IDE 使用的快速子字符串搜索算法

我正在开发与IDE非常相似的东西,它将处理数万个非常大的(文本)文件,并且我正在调查该主题的最新技术水平。例如,Intellij的标准(非正则表达式)表达式搜索算法非常直接。他们如何做到这一点?他们只是在内存中保留所有可搜索文件的某种后缀树吗?他们是否只是将文件内容的很大一部分保留在内存中,以便他们几乎完全在内存中执行标准KMP以避免任何磁盘IO?谢谢 最佳答案 目前,IntelliJIDEA对项目中的文件进行索引,并记住哪些3-grams(3个字母或数字的序列)出现在哪些文件中。搜索时,它也将查询拆分为3-grams,从索引中获取