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]
这个子数组是满足题目要求的。参考 灵茶山艾府
本题是一道综合题。
我们通过二分查找找到子数组中可能存在的不同元素的最大个数。之后,我们需要统计小于这个最大个数的子数组数量。如果子数组数量刚好满足所有子数组个数的一半,表示这个最大个数就是我们寻找的中位数。