元素计数c++

题目描述
        给你一个整数数组 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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值