题目描述
给你一个整数数组 nums ,统计并返回在 nums 中同时至少具有一个严格较小元素和一个严格较大元素的元素数目。
输入输出格式
输入格式
输入一个整数数组(list) nums。
输出格式
输出在 nums 中同时至少具有一个严格较小元素和一个严格较大元素的元素数目的整数结果。
输入输出样例1
输入
[11,7,2,15]
输出
2
解释(可选)
元素 7 :严格较小元素是元素 2 ,严格较大元素是元素 11 。
元素 11 :严格较小元素是元素 7 ,严格较大元素是元素 15 。
总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。
输入输出样例2
输入
[-3,3,3,90]
输出
2
说明提示
判断一个数是否有严格最小元素和严格最大元素,是指在数组中有大于该数的值和小于该数的值。
大佬写的
#include <iostream>
using namespace std;
int mmax,mmin,a[100],t,ans=0;
void f(){
int i=0,s=0,w=1;
char ch=getchar();
while(ch!=']'){
while(ch<'0'||ch>'9') {
if(ch=='-')
w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
s=(s<<1)+(s<<3)+ch-'0';
ch=getchar();
}
a[++t]=s*w;
s=0;
w=1;
}
}
int main(){
f();
mmin=mmax=a[1];
for(int i=2;i<=t;i++)
mmax=max(mmax,a[i]),mmin=min(mmin,a[i]);
for(int i=1;i<=t;i++)
if(a[i]>mmin&&a[i]<mmax)
ans++;
cout<<ans<<endl;
return 0;
}
简单的:通过逗号来判断输入的个数,减去最大最小两个值,便得到了答案。
#include <iostream>
using namespace std;
int main(){
string a;
cin >> a;
int res = 0;
for(int i = 0;i<a.size();i++)
if(a[i]==',') res++;
cout << res-1 << endl;
}
python:
nums = input()
nums = eval(nums)
def countElements(nums):
if len(nums) <= 1:
return 0
else:
nums.remove(max(nums))
nums.remove(min(nums))
return len(nums)
print(countElements(nums))
c
#include<stdio.h>
#define len 100
int array[len],count=0,l=0;
char q;
int main(){
getchar();
for(int i=0;i<10;i++){
scanf("%d",array+i);
if(getchar()==']'){
l=i+1;
break;
}
}
int max=array[0],min=array[0];
for(int i=0;i<l;i++){
max=(max>array[i])?max:array[i];
min=(min<array[i])?min:array[i];
}
for(int i=0;i<l;i++){
if((array[i]==max)||(array[i]==min))
count++;
}
printf("%d",l-count);
return 0;
}