题目描述
题目描述
题解
题解
提交记录
提交记录
困难

给你一个长度为 n 的整数数组 nums 和一个查询数组 queries,其中 queries[i] = [li, ri, thresholdi]

返回一个整数数组 ans,其中 ans[i] 等于子数组 nums[li...ri] 中出现 至少 thresholdi 次的元素,选择频率 最高 的元素(如果频率相同则选择 最小 的元素),如果不存在这样的元素则返回 -1。

 

示例 1:

输入: nums = [1,1,2,2,1,1], queries = [[0,5,4],[0,3,3],[2,3,2]]

输出: [1,-1,2]

解释:

查询子数组阈值频率表答案
[0, 5, 4][1, 1, 2, 2, 1, 1]41 → 4, 2 → 21
[0, 3, 3][1, 1, 2, 2]31 → 2, 2 → 2-1
[2, 3, 2][2, 2]22 → 22

 

示例 2:

输入:nums = [3,2,3,2,3,2,3], queries = [[0,6,4],[1,5,2],[2,4,1],[3,3,1]]

输出:[3,2,3,2]

解释:

查询子数组阈值频率表答案
[0, 6, 4][3, 2, 3, 2, 3, 2, 3]43 → 4, 2 → 33
[1, 5, 2][2, 3, 2, 3, 2]22 → 3, 3 → 22
[2, 4, 1][3, 2, 3]13 → 2, 2 → 13
[3, 3, 1][2]12 → 12

 

提示:

  • 1 <= nums.length == n <= 104
  • 1 <= nums[i] <= 109
  • 1 <= queries.length <= 5 * 104
  • queries[i] = [li, ri, thresholdi]
  • 0 <= li <= ri < n
  • 1 <= thresholdi <= ri - li + 1
 
代码
代码
测试用例
测试用例
测试结果
测试结果