Algorithm 错误的动态规划算法
从代码审查转移过来的。如果这个问题也不适合,请告诉我。我会移除它 我正在以下网站上制作一个算法拼图: 它不能通过所有测试用例。有些测试用例有如此大的数组,以至于调试起来非常困难。我这边的简单案例似乎都很管用。有人能研究一下这个问题并分享一下这个算法的错误吗?基本上,它只是在阵列中循环,找到每一个覆盖最远的站点(如Algorithm 错误的动态规划算法,algorithm,dynamic-programming,Algorithm,Dynamic Programming,从代码审查转移过来的。如果这个问题也不适合,请告诉我。我会移除它 我正在以下网站上制作一个算法拼图: 它不能通过所有测试用例。有些测试用例有如此大的数组,以至于调试起来非常困难。我这边的简单案例似乎都很管用。有人能研究一下这个问题并分享一下这个算法的错误吗?基本上,它只是在阵列中循环,找到每一个覆盖最远的站点(如origin)。类似计数器的变量结果记录原点(无线电台) def溶液(k,arr,原点=0): arr=已排序(列表(集合(arr))) 结果=1 cur=0 原点=0 对于范围(1,l
origin
)。类似计数器的变量结果
记录原点(无线电台)
def溶液(k,arr,原点=0):
arr=已排序(列表(集合(arr)))
结果=1
cur=0
原点=0
对于范围(1,len(arr))中的i:
如果arr[i]-arr[origin]将第一个对象放置在第一个索引上。最优解中的第一个对象也可以稍后放置
解决方案(1[1,2,3,4,5,6])
打印3,当它应该是2时(通过将两个对象放置在2和5上)。将第一个对象放置在1、3和5上。理想情况下,它应该是2,然后是5。大多数代码都是正确的。唯一的问题是使用范围外循环和范围内循环中的continue
- For range循环不会在运行时更改i值(它更像ForEach循环)李>
- continue不会终止内部循环-您可能需要使用break
以下代码通过了所有测试用例
def solution(k, arr, origin=0):
arr = sorted(list(set(arr)))
print arr
result = 1
cur = 0
origin = 0
i = 0
while (i < len(arr)):
if arr[i] - arr[origin] <= k:
i = i + 1
pass
else:
origin = i - 1
j = 1
while origin + j < len(arr):
if arr[origin + j] - arr[origin] <= k:
pass
else:
# Start for next station position from this point
i = origin + j
origin = i
# need another radio station
result += 1
break
j += 1
return result
def溶液(k,arr,原点=0):
arr=已排序(列表(集合(arr)))
打印arr
结果=1
cur=0
原点=0
i=0
而(i 如果arr[i]-arr[origin],请将问题陈述也张贴在这里。非常感谢!!
def solution(k, arr, origin=0):
arr = sorted(list(set(arr)))
print arr
result = 1
cur = 0
origin = 0
i = 0
while (i < len(arr)):
if arr[i] - arr[origin] <= k:
i = i + 1
pass
else:
origin = i - 1
j = 1
while origin + j < len(arr):
if arr[origin + j] - arr[origin] <= k:
pass
else:
# Start for next station position from this point
i = origin + j
origin = i
# need another radio station
result += 1
break
j += 1
return result