草庐IT

algorithm

全部标签

java - 具有不同字母长度的替换密码

我想实现一个简单的替换密码来屏蔽URL中的私有(private)ID。我知道我的ID会是什么样子(大写ASCII字母、数字和下划线的组合),而且它们会相当长,因为它们是组合键。我想使用更长的字母表来缩短生成的代码(我想使用大写和小写的ASCII字母、数字,别无其他)。所以我传入的字母表是[A-Z0-9_](37chars)我即将离任的字母表是[A-Za-z0-9](62chars)因此压缩近50%合理的压缩量将可用。假设我的URL如下所示:/my/page/GFZHFFFZFZTFZTF_24_F34我希望它们看起来像这样:/my/page/Ft32zfegZFV5显然,两个数组都将被

java - 在 Java 中实现朴素贝叶斯算法——需要一些指导

作为一项学校作业,我需要实现我打算用Java实现的朴素贝叶斯算法。为了了解它是如何完成的,我阅读了“数据挖掘-实用机器学习工具和技术”一书,其中有一节是关于这个主题的,但我仍然不确定一些阻碍我进步的主要观点。由于我在这里寻求指导而不是解决方案,我会告诉你们我的想法,我认为正确的方法,并要求更正/指导作为返回,我们将不胜感激。请注意,我是朴素贝叶斯算法、数据挖掘和一般编程方面的绝对初学者,因此您可能会在下面看到愚蠢的评论/计算:我得到的训练数据集有4个属性/特征,它们是数字的并且使用Weka(在范围[01]内)标准化(没有缺失值)和一个标称类(是/否)1)来自csv文件的数据是数字HEN

java - 如何计算一组字符串的最短唯一前缀?

这是命令行解析中非常常用的算法。给定一组预定义的长选项名称——计算唯一标识其中一个选项的最短前缀。例如,对于以下选项:-help-hostname-portnumber-name-polymorphic这将是输出:-he-ho-por-n-pol我正在考虑两种可能的方法——或者作为一棵树:*/|\/|\HNP/\|EOO/\RL或者通过搜索子字符串:for(Strings:strings){for(inti=1;i所以,问题是:你会选择哪个?我是否缺少明显的第三种方式? 最佳答案 “树”解决方案是Patriciatrie的特例(好吧

java - Horner 的小数部分递归算法 - Java

我正在尝试创建一种递归方法,该方法使用Horner算法将以n为底的小数转换为以10为底的小数。我在这里和所有地方都进行了搜索,但找不到任何地方详细处理小数部分。提醒一下,我在递归方面很弱,因为我还没有在我的编程课上正式学习它,但已经被另一个类(class)分配了。我能够创建一个方法来处理数字的整数部分,而不是小数部分。我觉得我写的方法相当接近,因为它让我的测试数字的答案加倍(可能是因为我正在测试基数2)。传递的第一个参数是一个填充有系数的int数组。我不太关心系数的顺序,因为我正在使所有系数相同以对其进行测试。第二个参数是基础。第三个参数初始化为系数数减1,我也将其用于整数部分方法。我

java - 最高 "Valued"回文

所以几个月前我在参加编程面试时,由于某种原因这个问题让我绊倒了。我可以想到几个解决方案,但其中大多数似乎效率极低。虽然多年来我一直以某种身份进行编程,但我目前正在大学攻读CS学位,所以我的引用点可能不完整。我希望这里有人可以提供一些可能的解决方案:“给定一组字符串和相关的数字‘值’,从这些字符串中组装一个回文,其值(由用于创建它的字符串的总和定义)是可能的最高值。”可以提供的字符串数量没有限制,有些字符串可能不会被使用。例子:“ASD”-3“dsa”-5“应用程序”-1结果将是值为9的“asdappadsa”。我的想法是尝试所有顺序的所有字符串,然后放弃一个,从最低值的开始,但该解决方

java - 在java中构建电路模型

我最近参加了Java开发人员职位的面试。我接到了一项任务:想出一种用Java表示电路(如下图中的电路)的好方法。电路是逻辑门XOR、AND、OR等的组合。每个门都有两个输入端口和一个输出端口。每个输出都连接到另一个门的输入,一直到更高的门(如图所示)。使系统简单,不允许有循环(尽管现实生活中的电路可以有循环)。我被要求考虑使用以下准则在Java中表示此模型的好方法:我得到了一个电路和一个应该提供给它的输入的值列表。我需要创建一个模型来用Java表示电路,即,我需要定义可用于表示电路的类和API。根据输入值和门的连接方式,我需要计算所表示的电路将产生的输出。我需要考虑一种表示板的方法,使

java - 优化 Leaper Graph 算法?

在与Google进行的45分钟技术面试中,我被问到LeaperGraph问题。我写了工作代码,但后来因为缺乏数据结构知识而被拒绝了工作机会。我想知道我可以做得更好。问题如下:“给定一个N大小的棋盘,并告诉棋子可以水平跳跃i个位置(向左或向右)并垂直跳跃j个位置(向上或向下)(即,有点像国际象棋中的马),跳跃者能否到达棋盘上的每个位置董事会?”我写了下面的算法。它通过标记图表上所有被访问过的点来递归地找出板上的每个位置是否都可以到达。如果无法访问,则至少有一个字段为false,函数将返回false。staticbooleanreachable(inti,intj,intn){boolea

java - 两人网格遍历游戏

给定一个M*N两个玩家的网格和位置p1和p2在网格上。有n个球放置在网格上的不同位置。设这些球的位置为B(1),B(2),B(3)...,B(n).我们需要计算拾取所有球所需的最小曼哈顿距离。应按升序拾取球,即如果B(i)在B(j)之前被采摘如果i.考虑以下示例案例:p1=(1,1)p2=(3,4)让我们考虑球的位置B(1)=(1,1),B(2)=(2,1),B(3)=(3,1),B(4)=(5,5)输出将为5因为p1会先选择B(1),B(2),B(3)和p1会选择B(4)我的方法我做了一个greedyapproach并计算出p1的距离和p2来自给定的球B(i)(从i=1ton开始)并

java - 为什么迭代映射比迭代列表慢?

我在面试中被问到这个问题,面试官想讨论我能想到的所有方法的权衡:DesignandimplementaTwoSumclass.Itshouldsupportthefollowingoperations:addandfind.add-Addthenumbertoaninternaldatastructure.find-Findifthereexistsanypairofnumberswhosesumisequaltothevalue.我首先提出了以下非常简单的解决方案。设计1:publicclassTwoSumDesign1{privatefinalMapmap=newHashMap()

java - 地形曲线到点阵列

在我的2D游戏中,我使用图形工具来创建由黑色表示的漂亮、平滑的地形:用java编写的简单算法每15个像素查找一次黑色,创建以下一组线条(灰色):如您所见,有些地方映射得非常糟糕,有些地方映射得很好。在其他情况下,没有必要每15个像素采样一次,例如。如果地形平坦。使用尽可能少的点将此曲线转换为一组点[线]的最佳方法是什么?每15个像素采样=55FPS,10个像素=40FPS下面的算法正在做这项工作,从右到左采样,输出可粘贴到代码数组中:publicvoidloadMapFile(Stringpath)throwsIOException{FilemapFile=newFile(path);