2148-元素计数
给你一个整数数组 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
方法一:按要求判断
思路与算法
对于数组中的一个元素,它「同时具有一个严格较小元素和一个严格较大元素」等价于它「既不等于数组中的最大值,也不等于数组中元素的最小值」。
因此我们可以首先遍历数组 nums,求出数组元素的最大值 largest 与最小值 smallest。随后,我们遍历数组中的元素 num,统计满足 smallest} < \textit{num} < \textit{largest 的元素数目。最终,该数目即为数组中「同时具有一个严格较小元素和一个严格较大元素」的元素数量,我们返回该数目作为答案。
代码
1 | class Solution { |
1 | class Solution: |
复杂度分析
时间复杂度:O(n),其中 n 为 nums 的长度。其中求出数组最大值与最小值的时间复杂度为 O(n),计算符合要求元素数目的时间复杂度也为 O(n)。
空间复杂度:O(1)。
Comments