草庐IT

algorithm

全部标签

algorithm - 转到 : longest common subsequence back tracing

我的代码适用于计算LCS的长度,但我在以下链接中应用相同的代码来读取LCS,http://en.wikipedia.org/wiki/Longest_common_subsequence_problem但缺少一些字符串。你能告诉我我错过了什么吗?GooglePlayground链接:http://play.golang.org/p/qnIWQqzAf5funcBack(table[][]int,str1,str2string,i,jint)string{ifi==0||j==0{return""}elseifstr1[i]==str2[j]{returnBack(table,str1,

string - 查找符合特定要求的字符串

有一个函数应该返回true:funcaccessible(agentstring)bool{a:=strings.Split(agent,"")iflen(a)!=3{returnfalse}b:=a[0]c:=a[1]d:=a[2]x:=strings.EqualFold(b,c)y:=b!=strings.ToLower(c)z:=strings.Index(d,b+c)==1&&len(d)==5returnx&&y&&z}但是我无法确定哪个string输入符合这些要求。我错过了什么吗?PS:这是来自gocode.io的任务#3 最佳答案

algorithm - Golang 代码对于 Hackerrank 来说太慢了

我一直在努力解决这个Hackerrank挑战:Link这是你必须做的:你有一个大矩阵:111111111111111111111111111011和一个小矩阵:111111110你必须找出小矩阵是否存在于大矩阵中。最多有5个测试用例,每个矩阵的最大尺寸为1000x1000,我需要在4秒内解决这个问题。我的代码在最大可能输入时超时,我想也许我扫描矩阵的方式太慢了。这是我的代码:packagemainimport("fmt""strconv""strings")funcmain(){vart,rL,cL,rS,cS,tempintvarsstringvarsl[]stringvarmxL,

algorithm - Golang 读取文本文件并从其中一个读入值中取出一部分

在我下面的代码中,我希望读取一个文本文件,每行填充了一个数字1-5。我希望它扫描该行并读取其中一个值,看看它是否//Thisisthepartoftheprogramthatwillreadfromatextfilenamed"file"//Toseewhatnumberswereselectedlasttimesotherecipeforweektwocanbe//acompletelynewrecipegroupof5f,err:=os.Open("file")iferr!=nil{fmt.Println(err)}for{varzintvarnintn,err=fmt.Fscan

algorithm - 如何在不使用 "/"和 "%"的情况下有效地获得商和余数?

我已经实现了一个简单的函数,它在除数是10的幂时返回商和余数:funcgetQuotientAndRemainder(numint64,digitsuint)(int64,int64){divisor:=int64(math.Pow(10,float64(digits)))ifnum>=divisor{returnnum/divisor,num%divisor}else{return0,num}}只是好奇,除了直接使用/和%运算符,还有没有更好的算法来求商和余数?或者仅在除数是10的幂的情况下? 最佳答案 returnnum/div

Go 并发 : Chudnovky's algorithm, 比同步慢

最近在friend的推荐下开始学习围棋。到目前为止,我很喜欢它,但我写了(我认为会是)轻量级并发的完美示例,并得到了令人惊讶的结果......所以我怀疑我做错了什么,或者我是误解了goroutines的成本。我希望这里的一些gophers可以提供见解。我使用goroutines和简单的同步执行在Go中编写了Chudnovsky的算法。我假设,每个计算都独立于其他计算,同时运行至少会快一点。注意:我在第5代i7上运行它,所以如果goroutine像我被告知的那样被多路复用到线程上,这应该是并发的和并行的。packagemainimport("fmt""math""strconv""tim

c++ - 获得最佳组合的算法

我有ID为1、3、4、5、6、7的项目。现在我有如下数据。每行都有一个offerId。ArrayofIds由数组中的ID组合组成。Discount是该offerId的值offerId:ArrayofIds:Discounto1:[1]:45o2:[134]:100o3:[35]:55o4:[5]:40o5:[6]:30o6:[67]:20现在我必须选择所有提供最佳ID组合的offerId,即最大总折扣。例如在上面的例子中:可能的结果可能是:[o2,o4,o5]最大折扣为170(100+40+30)。注意。结果offerId应该是这样的ID不重复。o2,o4,o6的示例id为[1,3,4

高语 : "No common algorithm for key exchange" error

我是GoLang的新手,我正在尝试使用go连接到远程服务器。但是我不断收到以下错误Failedtodial:ssh:handshakefailed:ssh:nocommonalgorithmforkeyexchange;clientoffered:[curve2****-sh****@libssh.org****-sha*-nis****ecdh-sha2-nistp384ecdh-sha2-nistp****diffie-hellman-group14-sha1diffie-hellman-group1-sha1],serveroffered:[diffie-hellman-grou

algorithm - 如何设计输入小于10时的进度条逻辑?

我正在解析数组中的字符串并在解析字符串时显示进度。这是我的逻辑,但它不适用于小于10的输入。在100*i/(lineLen-1)函数的初始部分已经处理了除以零progress:=0fori:=0;i=progress{fmt.Printf("--%d%s--",progress,"%")progress+=10}} 最佳答案 我知道您需要将所有百分比降低到10的倍数。您可以尝试以下操作。lineLen:=4progress:=0fori:=0;i=progress{roundedProgress:=(actualProgress/1

arrays - 有时将子数组列表中的项目分发到其他子数组/作品然后随机出错

我有一个创建数组列表的程序。第一个数组填充有值,而其他数组可以为空或不为空。如果它是空的,我们从第一个数组中取出一个值并移动到一个空数组。目标是永远不要在列表中有一个空数组ArrayValuesA1->V1,V2,V3,V4,V5//addextravaltowhateverisnxtinlineA2这是我的。我感到困惑的是,它是随机让索引超出范围,而有时它会起作用,而且我相信有一种更优化和更有效的方法来做到这一点。我很想看到它。packagemainimport"fmt"funcmain(){//Createlistofarrayssomething:=[]string{"first