2148. 元素计数

题目

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

示例1:

1
2
3
4
5
输入:nums = [11,7,2,15]
输出:2
解释:元素 7 :严格较小元素是元素 2 ,严格较大元素是元素 11 。
元素 11 :严格较小元素是元素 7 ,严格较大元素是元素 15 。
总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。

示例2:

1
2
3
4
输入:nums = [-3,3,3,90]
输出:2
解释:元素 3 :严格较小元素是元素 -3 ,严格较大元素是元素 90 。
由于有两个元素的值为 3 ,总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。

提示:

  • 1 <= nums.length <= 100
  • -10^5 <= nums[i] <= 10^5

解法

解法一:

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public int countElements(int[] nums) {
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
int minCount = 0;
int maxCount = 0;
Set<Integer> count = new HashSet<>(nums.length);
for (int num : nums) {
count.add(num);
if (num > max) {
max = num;
maxCount = 1;
} else if (num == max) {
maxCount++;
}

if (num < min) {
min = num;
minCount = 1;
} else if (min == num) {
minCount++;
}
}

if (2 >= count.size()) {
return 0;
}

return nums.length - minCount - maxCount;
}
0%