提问者:小点点

穷举搜索(找到一个合适的块并将x插入数组)


function ExhaustiveSearch(A,N,x)
int space=0
int j=0
for 0 <=i < N
  if(A[i]==0)
    if(space==0)
      j==i
      space++
    if(space==x)
      return j
  return -1

我如何改进我的代码以找到一个合适的位置来插入所请求的x(内存位置


共1个答案

匿名用户

基本上,上述问题的目的是找到一个最小索引,使得从该索引中存在长度为x的连续子数组,且所有索引的值均为0。

所以,我对代码做了一些修改:

1.j应该初始化为-1,这表明到目前为止没有找到索引。

2.如果对于一个特定的迭代,没有找到长度为x所需的子数组,那么再次将j初始化为-1,空格初始化为0。

3.语句“return-1”应该在for循环之外,以便所有索引都可以被检查。

function ExhaustiveSearch(A,N,x)
    
    int space = 0
    int j = -1


    for 0 <= i < N

      if(A[i] == 0)
        
        if(space == 0)
          j = i
          space++

        if(space == x)
          return j
      
      else
          j = -1
          space = 0

    return -1

相关问题