🗒️3134. 找出唯一性数组的中位数
2025-4-22
| 2025-4-22
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Apr 22, 2025 04:06 AM
给你一个整数数组 nums 。数组 nums 的 唯一性数组 是一个按元素从小到大排序的数组,包含了 nums 的所有非空 子数组 中不同元素的个数。
换句话说,这是由所有 0 <= i <= j < nums.length 的 distinct(nums[i..j]) 组成的递增数组。
其中,distinct(nums[i..j]) 表示从下标 i 到下标 j 的子数组中不同元素的数量。
返回 nums 唯一性数组 的 中位数 
注意,数组的 中位数 定义为有序数组的中间元素。如果有两个中间元素,则取值较小的那个

不定长滑动窗口——越短越合法

一般要写 ans += right - left + 1
内层循环结束后,[left, right] 这个子数组是满足题目要求的。
本题是一道综合题。
我们通过二分查找找到子数组中可能存在的不同元素的最大个数。之后,我们需要统计小于这个最大个数的子数组数量。如果子数组数量刚好满足所有子数组个数的一半,表示这个最大个数就是我们寻找的中位数

📎 参考

  • 【题单】滑动窗口与双指针
  • Important
  • 930. 和相同的二元子数组LCP 68. 美观的花束
    Loading...