【问题标题】:codility counting lesson 2 : swap elements from arrays代码计数第 2 课:交换数组中的元素
【发布时间】:2015-04-28 13:07:47
【问题描述】:

我正在学习 Codility Counting Lesson (https://codility.com/media/train/2-CountingElements.pdf),我需要帮助来了解最快的解决方案。

我想知道计数功能是什么意思:

count = counting(A, m)

问题:

给定一个整数 m (1

def fast_solution(A, B, m):
    n = len(A)
    sum_a = sum(A)
    sum_b = sum(B)
    d = sum_b - sum_a
    if d % 2 == 1:
        return False
    d //= 2
    count = counting(A, m)
    for i in xrange(n):
        if 0 <= B[i] - d and B[i] - d <= m and count[B[i] - d] > 0:
            return True
    return False

【问题讨论】:

  • counting 不是 Python 中的内置函数,它必须来自它们。能否提供一下出处?

标签: python arrays algorithm


【解决方案1】:

文中前面已经定义了计数,实现如下:

def counting(A, m):
    n = len(A)
    count = [0] * (m + 1)
    for k in xrange(n):
        count[A[k]] += 1
    return count

它只是计算每个元素在数组中出现的次数。

【讨论】:

  • 哦,你是对的。我没有看到那个。 :) 你的回答非常有用。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-12-31
  • 2020-11-06
  • 2012-09-21
  • 1970-01-01
  • 2012-01-30
  • 1970-01-01
  • 2023-03-24
  • 2021-06-01
相关资源
最近更新 更多