元素计数(给你一个整数数组 nums ,统计并返回在 nums 中同时至少具有一个严格较小元素和一个严格较大元素的元素数目。)

代码
#include<stdio.h>
int main(){
    int nums[20]={},i=0,j,n=0,max=0,min=0,res=0;
    char c;
    for(;;){
        scanf("%c",&c);
        if(c==']'){
            n=i-1;
            break;
        }
        scanf("%d",&nums[i++]);
    }
    for(i=0;i<=n;i++){
        max=0;
        min=0;
        for(j=0;j<=n;j++){
            if(nums[j]>nums[i]) max=1;
            if(nums[j]<nums[i]) min=1;
        }
        if(max==1&&min==1) res+=1;
    }
    printf("%d",res);
    return 0;
}
友情提示

1、题目实际就是要求你求非最大且非最小的数有几个,底层逻辑比较好理解。

2、这题目麻烦就麻烦在怎么输入,想了很多种方法都有问题,最后在题解里看到一个天才想出了这种朴实无华却如此有用的方法。因为输入无论是有‘[’还是有‘,’都是属于字符,整体的输入刚好是以一个字符一个整型的格式输入的,故而此方法完美符合。(我一直在往getchar如何和scanf搭配而不让程序产生误解的方向等等去想,毕竟输入中无空格,没想到过用两个scanf,一个输入字符一个输入整型,如此方便且明了,感谢这位天才)

3、max和min都是作为标记,反映这个数组中是否既存在比这个数大的又存在比这个数小的数。

题目描述

给你一个整数数组 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

说明提示

判断一个数是否有严格最小元素和严格最大元素,是指在数组中有大于该数的值和小于该数的值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值