Codility每周一课大数据,机器学习,人工智能

每周一课:L15 Caterpillar method(15.1

2019-02-20  本文已影响2人  AiFany
0.png
P15.1 AbsDistinct

Compute number of distinct absolute values of sorted array elements.

有序数组中绝对值不同的数的个数,就是一个已经排好序的整数数组中绝对值不相同的数字的个数.

例如:
A[0]=-5,A[1]=-3,A[2]=-1,A[3]= 0,A[4]= 3,A[5]= 6
绝对值不同的数的个数为5, 因为其中有5个不同的绝对值: 0, 1, 3, 5, 6

编写一个函数:

def solution(A)

返回给定有序数组中绝对值不同的数的个数。

例如,针对上面的例子,函数应返回5。

假定:

  1. N是[1,100,000]内的整数;
  2. 数组A的每个元素都是区间[−2,147,483,648,2,147,483,647] 内的整数;
  3. 数组A是非递减序列;

利用Python函数的绝对值函数abs以及去重函数set

# -*- coding:utf-8 -*-
# &Author  AnFany
# Lesson 15:Caterpillar method
# P 15.1 AbsDistinct


def solution(A):
    """
    计算数组A中绝对值不同的数字的个数
    时间复杂度:O(N) or O(N*log(N))
    :param A: 数组
    :return: 绝对值不同的数字的个数
    """
    return len(set(abs(i) for i in A))
image

点击获得更多编程练习题。欢迎Follow,感谢Star!!! 扫描关注微信公众号pythonfan,获取更多。

image image
上一篇 下一篇

猜你喜欢

热点阅读