作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我很好奇 GCD 问题。我正在参加 Coursera 算法工具箱类(class),它指出问题的天真解决方案是:
for d from 1 to a+b:
if d|a and d|b:
best(or max) d
return best
虽然我对此感到困惑。最大可能的除数不是 min(a,b) 而不是 a+b 吗?因为两者中较小的不可能除以两者中较大的?
最佳答案
是的,你是对的。您可以重写算法,使循环停止于 min(a,b)
for d from 1 to min(a,b):
if d|a and d|b:
best(or max) d
return best
这个实现比第一个更快。您仍然可以通过向后循环来改进它:
for d from min(a,b) to 1:
if d|a and d|b:
break
return d
关于algorithm - 最大公约数 - 上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43443475/
我是一名优秀的程序员,十分优秀!