草庐IT

algorithm

全部标签

java - 在 O(log(N)) 时间内查找排序数组中一定范围内的整数数量的高效算法?

我遇到了一个必须在O(logn)中完成的面试题给定一个排序的整数数组和一个数字,找到数组中数字的开始和结束索引。Ex1:Array={0,0,2,3,3,3,3,4,7,7,9}andNumber=3-->Output={3,6}Ex2:Array={0,0,2,3,3,3,3,4,7,7,9}andNumber=5-->Output={-1,-1}我正试图为此找到一个有效的算法,但一直没有成功。 最佳答案 您可以使用二进制搜索的概念来查找开始和结束索引:要找到起始索引,将数组减半,如果值等于或大于输入数字,则重复数组的下半部分,否

java - 为 Julia 集生成自定义调色板

我需要一种算法或方法来生成调色板来为Julia集图像着色。例如,当使用逃逸时间算法生成图像时,我得出了以下图像:但是我需要一些方法来生成自定义调色板,例如theWikipediapage:如何获得类似的图像?另外,Julia集应该使用什么颜色平滑算法?这里是澄清的代码片段:intmax_iter=256;ComplexNumberconstant=newComplexNumber(cReal,cImag);floatSaturation=1f;for(intX=0;X2)break;}floatBrightness=i 最佳答案 这

java - 单个 while 循环的 Big-Oh 表示法,该循环覆盖具有两个迭代器变量的数组的两半

试图复习我对Big-O的理解以进行测试(显然需要非常基本的Big-O理解)我已经开始并正在做我书中的一些练习题。他们给了我以下片段publicstaticvoidswap(int[]a){inti=0;intj=a.length-1;while(i我觉得很容易理解。它有两个迭代器,每个迭代器以固定的工作量覆盖数组的一半(我认为它们都以O(n/2)计时)因此O(n/2)+O(n/2)=O(2n/2)=O(n)现在请原谅,因为这是我目前的理解,这是我尝试解决问题的方法。我在网上找到了很多big-o的例子,但没有一个像这样迭代器基本上同时递增和修改数组。它有一个循环这一事实让我认为它无论如何

java - 快速分解算法?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。如何快速求出一个数的所有因数?例如:digit:20factors:{1*20,2*10,4*5,5*4,10*2,20*1}

java - 实现 Kruskal 算法时测试电路

我正在尝试编写一个程序来找到最小生成树。但是我在使用该算法时遇到的一个问题是测试电路。在Java中执行此操作的最佳方法是什么。好的,这是我的代码importjava.io.*;importjava.util.*;publicclassJungleRoads{publicstaticintFindMinimumCost(ArrayListgraph,intsize){inttotal=0;int[]marked=newint[size];//keepstrackoverintegerinthemst//convertanarraylisttoanarrayListwrapper=grap

java - 在具有一定错误容忍度的文本正文中定位 ASCII 艺术图像

是否有任何算法可以找到以下ASCII艺术图像?+++++++++++++++++++++++++++++++++++++++++++++++在下面的正文中?complete_file_here+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++我必须用黄色突出显示与完整形状相对应的ASCII艺术图像。见附图:我必须搜索一个包含粗略形状但

java - 8 拼图 : Solvability and shortest solution

我使用广度优先搜索构建了一个8拼图求解器。我现在想修改代码以使用启发式方法。如果有人能回答以下两个问题,我将不胜感激:可解性我们如何确定8拼图是否可解?(给定起始状态和目标状态)维基百科是这样说的:Theinvariantistheparityofthepermutationofall16squaresplustheparityofthetaxicabdistance(numberofrowsplusnumberofcolumns)oftheemptysquarefromthelowerrightcorner.不幸的是,我无法理解那是什么意思。理解起来有点复杂。谁能用更简单的语言解释一

java - 检测冗余规则的算法

我正在寻找一种算法来检测冗余规则。规则有固定数量的输入参数,每个参数都有不同的域。考虑三个规则参数颜色、Material和尺寸:颜色:红色、绿色、蓝色Material:木材、玻璃、铝尺寸:小号、中号、大号每个规则可以匹配参数的多个值或匹配任何值。选择匹配所有参数值的第一个规则。没有否定规则,但域是固定的,因此可以通过添加所有其他规则来实现否定。+--------------------------------------------------++-----------------|RuleParameters||RuleAction+----------------+--------

Java:使用indexOf方法基于另一个数组对数组进行排序

我想根据另一个数组(索引)的排序顺序遍历两个数组(A、B),在本例中为10、34、32、21。String[]A:a,b,c,dString[]B:e,f,g,hint[]indexes:10,34,32,21Apologyforthebadexamplehere.Ihaveupdatedtheindexesarraytocleartheconfusion.预期的输入和输出输入是三个数组。我想使用索引数组的排序来遍历A、B。即我想找到一种方法来使用顺序(a,d,c,b)迭代A并使用顺序(e,h,g,f)迭代B我的方法:我用我认为与另一种方法相同的解决方案解决了这个问题。但是,第二种方法

java - A* 算法无法正常工作

我的A*算法实现需要一些帮助。当我运行算法时,它确实找到了目标,但路径肯定不是最短的:-P这是我的代码,请帮我找出错误!我认为这可能是我的问题的重建路径,但我不确定。publicclassPathfinder{publicListaStar(Nodestart,Nodegoal,WeightedGraphgraph){Nodex,y;inttentative_g_score;booleantentative_is_better;FScoreComparatorcomparator=newFScoreComparator();Listclosedset=newArrayList();Qu