草庐IT

algorithm

全部标签

java - 高效的 Minkowski 和计算

不知是否有算法可以高效计算离散一维Minkowski和。闵可夫斯基和定义为:S+T={x+y|xinS,yinT}是否可以将集合表示为列表,对S和T进行排序,然后然后做一些类似于计算两个集合的并集的事情。即步行沿着集合并行并生成结果。是否有这样的算法,我不必另外对它们进行排序删除重叠案例的结果x1+y1=x2+y2?最好用Java制定? 最佳答案 首先,输出的大小可以是O(nm),如果没有碰撞(例如A={0,1,2,...,n-1},B={n,2*n,3*n,...n*n}),那么如果我们依赖n和m,我们没有希望找到次二次算法。一个

java - 硬币找零的空间优化解决方案

给定一个值N,如果我们想找零N美分,并且我们有无限供应的每个S={S1,S2,..,Sm}值(value)的硬币,我们有多少种找零的方法?硬币的顺序无关紧要。例如,对于N=4和S={1,2,3},有四种解决方案:{1,1,1,1},{1,1,2},{2,2},{1,3}。所以输出应该是4。对于N=10和S={2,5,3,6},有五种解决方案:{2,2,2,2,2},{2,2,3,3},{2,2,6}、{2,3,5}和{5,5}。所以输出应该是5。我找到了3种方法HERE.但无法理解仅使用一维数组table[]的空间优化动态编程方法。intcount(intS[],intm,intn){

java - 面试题: Query - which sentences contain all of the words of a phrase

我已经解决了这个问题,但无法提出通过所有测试用例的最有效问题。它在5个测试用例中超时。Determinesentencescontainallofthewordsofaphrase0:chrisandjenniferhadafightthismorning1:chriswentonaholiday2:jenniferisinprisonQueryPhrasesare0:chrisjennifer1:jennifer2:prisonGoalistofindindexesofthematchingsentencesforeachqueryor-1iftherearenomatchingse

java - 匹配 String1 中 String2 字符的出现和模式

我在暑期实习的电话面试中被问到这个问题,并试图用Java提出一个n*m复杂度的解决方案(尽管它也不准确)。我有一个接受2个字符串的函数,假设是“common”和“cmn”。它应该根据“c”、“m”、“n”在“common”中以相同顺序出现的事实返回True。但是如果参数是“common”和“omn”,它会返回False,因为即使它们以相同的顺序出现,但'm'也出现在'o'之后(不满足模式匹配条件)我已经使用Hashmaps和Ascii数组解决了这个问题,但还没有得到令人信服的解决方案!从我读到现在,它可以与Boyer-Moore或Levenshtein距离算法相关吗?希望在stacko

Java-高效的调度结构?

对于这个问题的长度,我深表歉意,但我认为包含足够的细节很重要,因为我正在寻找一种合适的方法来解决我的问题,而不是简单的代码建议!一般说明:我正在从事一个项目,该项目要求任务能够按某个相对重复的时间间隔进行“安排”。这些间隔以某个内部时间表示,表示为一个整数,该整数会随着程序的执行而递增(因此不等于实时)。每次发生这种情况时,都会询问调度以检查是否有任何任务在此时间步执行。如果执行了任务,则应重新安排它在相对于当前时间的位置再次运行(例如,在5个时间步中)。这个相对位置简单地存储为Task对象的整数属性。问题:我在决定我应该如何构建它时有些挣扎-部分原因是它是一组有点难查找的搜索词。就目

java - 设计递归时遇到问题,结果有限

在这个问题中,我试图简单地获取一个项目列表和一个范围,并找到允许使用所有项目的组合。举个例子:假设您有4件元素(苹果、梨、桃子和橙子),并且希望每件元素至少占篮子的20%,最多占60%。例如,您可以有25%、25%、25%、25%或30%、30%、20%、20%等,但0%、0%、50%、50%不会工作,因为指定的最小百分比是20%。该程序运行良好,但它使用的项目少于整个列表(而不是每个解决方案中的4个项目,有些解决方案包含2或3个项目,这不是我想要的)。如果我发送4个项目的列表,我希望将所有4个项目一起使用的组合,仅此而已。我不想要这个,因为我计划使用大列表,并且我希望大小是过去只用于

java - 定位装置(相交圆)

我有一系列点,代表房间内的移动设备。以前我已经系统地从每个发出ping并记录它到达其他人的时间以计算距离。这是示例网络的简单图表。底部的A节点应该是D而不是记录距离后,我得到了散列中的距离信息。A={B:2,C:1,D:3}B={A:2,C:2,D:2}C={A:1,B:2,D:2}D={A:3,B:2,C:2}我的数学很生疏,但我觉得我应该能够使用这些值分别绘制圆圈,然后与圆圈相交以计算节点的相对图。每次我尝试这样做时,我都会从围绕根节点(在本例中为A)绘制的一系列圆圈开始,看起来像这样:我知道其他节点必须位于我围绕A绘制的线上,但无法定位它们,如何绘制它们的距离以便与圆相交并创建图

求区间交集的Java算法

我有这样的时间间隔:[5,10]我有更多的时间点列表,长度不同,例如:t1=[3,6,9,10]t2=[2,4,5,6,10]..t1[3,6]是第一个区间,[6,9]是第二个区间,依此类推。t2和其他列表也是如此。现在我需要保存列表,以及与第一个时间间隔相交的特定间隔。例如,在t1中,我有[3,6]与[5,10]、[6,9]相交,与[5,10]等我已经制定了一个算法,但我要处理更多数据,我需要一个快速算法。例如,如果我使用300.000个列表并且每个列表都有200个时间点,我的算法1在大约5-10秒内正常。但如果我有10.000个或更多时间点,算法就会非常慢。我的算法是这样的:Fir

java - java中两个不同对象列表的交集

我有两个具有唯一ID的不同字段的Pojo类。我想执行两个交集List和List.什么是最好的方法。一是我可以简单地迭代两次,但复杂度n2太高了。有更好的方法吗?我可以用比较器来做吗?ClassA{Id,Name,DOB}ClassB{id,aid,location}我有A的列表和B的列表现在想获取A的列表以及在B中的位置 最佳答案 ApacheCommonsCollections有一个方法可以做到这一点:CollectionUtils.intersection.但是,它不使用泛型。还有这个问题:Listintersectioninj

java - 将 ISBN10 转换为 ISBN13

我尝试使用Java将ISBN10代码转换为ISBN13编号。从。在isbn-13.info上,我找到了转换它们的方法。Example:0-123456-47-9Beginwithprefixof“978”UsethefirstninenumericcharactersoftheISBN(includedashes)978-0-123456-47-CalculatetheEANcheckdigitusingthe“Mod10Algorithm”978-0-123456-47-2使用它我创建了一个Java程序来进行转换。publicclassISBNConverter{publicstat