每周一课:L15 Caterpillar method(15.1

作者: AiFany | 来源:发表于2019-02-20 12:49 被阅读2次
0.png
P15.1 AbsDistinct

Compute number of distinct absolute values of sorted array elements.

  • P15.1 绝对值不同
    计算有序数组中绝对值不同的数字的个数

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

例如:
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

  • Python3代码
# -*- 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

相关文章

网友评论

    本文标题:每周一课:L15 Caterpillar method(15.1

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