Leetcode315题:计算右侧小于当前元素的个数

作者 : admin 本文共788个字,预计阅读时间需要2分钟 发布时间: 2024-06-11 共1人阅读

315. 计算右侧小于当前元素的个数

难度:困难

问题描述:

给你一个整数数组 nums ,按要求返回一个新数组 counts 。数组 counts 有该性质: counts[i] 的值是  nums[i] 右侧小于 nums[i] 的元素的数量。

示例 1:

输入:nums = [5,2,6,1]

输出:[2,1,1,0]

解释:

5 的右侧有 2 个更小的元素 (2 和 1)

2 的右侧仅有 1 个更小的元素 (1)

6 的右侧有 1 个更小的元素 (1)

1 的右侧有 0 个更小的元素

示例 2:

输入:nums = [-1]

输出:[0]

示例 3:

输入:nums = [-1,-1]

输出:[0,0]

提示:

1 <= nums.length <= 105

-104 <= nums[i] <= 104

问题分析:

本问题对于一个整数数组nums,返回一个新数组counts,其中counts[i]的值是整数数组nums中nums[i]元素右侧小于nums[i]的数量,所以不管怎样,肯定需要这个一个功能,即告诉数组nums和给定的一个索引号i,能够统计出nums[i]右侧应该有多少个小于nums[i]的元素数量,为此设计的函数lesscount(nums,i)能够满足要求。

剩下的事情就比较好做了,函数answer(nums)通过循环遍历nums中的每一个索引号,然后调用lesscount(nums,i)函数计算出count[i],返回count数组,这个问题就解决了。

程序如下:

def lesscount(nums,i):
    a=nums[i]
    n=0
    for j in range(i+1,len(nums)):
        if nums[j]

运行实例一:

pls input nums=[3,2,5,1]

[2, 1, 1, 0]

运行实例二:

pls input nums=[3,5,6,7]

[0, 0, 0, 0]

运行实例三:

pls input nums=[7]

[0]

解决一个问题,一定要反复阅读其问题描述,找到最关键的点,问题就会迎刃而开。

本站无任何商业行为
个人在线分享-虚灵IT资料分享 » Leetcode315题:计算右侧小于当前元素的个数
E-->