题目:
给你一个整数数组 nums ,统计并返回在 nums 中同时至少具有一个严格较小元素和一个严格较大元素的元素数目。
例如 输入:nums = [-3,3,3,90]
输出:2
解释:元素 3 :严格较小元素是元素 -3 ,严格较大元素是元素 90 。
由于有两个元素的值为 3 ,总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。
解题思路:
首先通过读题,我们可以得出解题的核心在于统计最大元素和最小元素之间的元素数目。
那么问题就变得简单起来:
1.先对数组内元素按从小到大或从大到小顺序排序,头尾就是值最小和最大的元素,
2.去除数组头尾最大和最小元素
3.计算数组长度(数组长度就是nums中具有严格较小元素和严格较大元素的元素数目啦!)
注意:头尾可能重复,比如nums=[-1,-1,1,1,2,2],应去掉重复的头尾,再计算数组长度。
源代码:
def numbers(l):
sorted(l)
if l==[] or l[0]==l[-1] :
num=0#数组为空或数组内元素相等,返回0
else:
#掐头
a=l[0]
l.remove(l[0])
i = 0
while l[i]==a:
l.remove(l[i])
i=i+1
#去尾
b=l[-1]
l.remove(l[-1])
j = -1
while l[j]==b:
l.remove(l[j])
j=j-1
num=len(l)
return num