「每日LeetCode」2022年1月24日

本文最后更新于:2023年3月19日 晚上

  1. 元素计数

5989. 元素计数

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

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

提示:

  • 1 <= nums.length <= 100
  • -105 <= nums[i] <= 105

思路

遍历数组,统计最大和最小的数的个数,最后数组长度减去这两个值即可。

解答

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
/**
* @param {number[]} nums
* @return {number}
*/
var countElements = function (nums) {
let min = Infinity,
max = -Infinity,
minCount = 0,
maxCount = 0;
for (const num of nums) {
if (num === min) {
minCount++;
}
if (num === max) {
maxCount++;
}
if (num < min) {
minCount = 1;
min = num;
}
if (num > max) {
maxCount = 1;
max = num;
}
}
return Math.max(nums.length - minCount - maxCount, 0);
};