美文网首页
来道面试题

来道面试题

作者: 不_一 | 来源:发表于2018-03-24 19:41 被阅读0次
    如图

    给定一个数组arr和一个常数d,实现一个函数,计算出在数组arr中,所有距离为d的元素数的数量,并计算出函数执行的时间复杂度和空间复杂度.
    例如:

    arr =  [3, 5, 8, 7, 8, 10] 
    d = 2
    abs(arr[0]-arr[1]) = d
    abs(arr[1]-arr[3]) = d
    abs(arr[2]-arr[5]) = d
    abs(arr[4]-arr[5]) = d
    

    一共四组,返回结果4
    b) 计算出函数执行的时间复杂度和空间复杂度
    c)对你写的函数写完整并有效的单元测试

    l = [3, 5, 8, 7, 8, 10]
    d = 2
    
    l.sort()
    i = 0
    j = 1
    cnt = 0
    n = 0
    while i <= len(l) - 1 and j <= len(l) - 1:
        if i < j and abs(l[i] - l[j]) == d:
            cnt += 1
            if l[i] == l[i + 1]:
                i += 1
            else:
                j += 1
            continue
        elif i < j and abs(l[i] - l[j]) > d:
            i += 1
        elif i < j and abs(l[i] - l[j]) < d:
            j += 1
        if i == j:
            j += 1
    
    print(cnt)
    

    相关文章

      网友评论

          本文标题:来道面试题

          本文链接:https://www.haomeiwen.com/subject/ghpffftx.html