当前位置:首页|资讯

GFG 176 Subarray Occurences

作者:您是打尖儿还是住店呢发布时间:2024-10-15

给你一个长度为 n 的数组 arr,并提供 q 个查询。你的任务是统计从索引 L 到 R(包括这两个索引)的子数组中整数 K 的出现次数。您应该返回一个大小为 q 的答案数组,其中包含每个查询的答案,答案数组中的 i 索引表示第 i 个查询的答案。

示例 1:

输入

n = 7

q = 2

arr = [1, 2, 2, 3, 2, 4, 1] (1, 2, 2, 3, 2, 4, 1)

查询 = [[1, 4, 2], [0, 6, 1]]

输出 

[3,2]

说明

对于第一个查询 [1, 4, 2],从索引 1 到索引 4 的子数组是 [2, 2, 3, 2]。数字 数字 “2 ”出现了 3 次。

对于第二个查询 [0,6,1],从索引 0 到 6 的子数组是 [1,2,2,3,2,4、 1]. 数字 “1 ”出现了 2 次。

例 2:

输入

n = 4

q = 3

数组 = [5, 5, 5, 5]

queries = [[0, 3, 5], [1, 2, 5], [0, 1, 6]] 查询

输出:

[4,2,0]

说明

对于第一个查询 [0, 3, 5],子数组是 [5, 5, 5, 5],“5 ”出现了 4 次。

对于第二个查询 [1,2,5],子数组是 [5,5],“5 ”出现了 2 次。

对于第三个查询 [0,1,6],子数组是 [5,5],'6' 没有出现,所以答案是 0。


你的任务

你需要实现函数 countOccurrences。对于每个查询,您需要计算整数 K 在从索引 L 到 R 的 arr 子数组中的出现次数(均包括在内),并

返回一个大小为 q 的列表,其中每个元素都对应于该查询的答案。

通过DeepL.com(免费版)翻译

----------

把数据的索引放到hashmap中,然后用2个二分找到即可,也可以用线段树,不过我不会,也可以用官方的题解,map+treemap做,我也不会,(是真的没看懂。。。),二分找到上边界跟下边界。然后r-l+1,当然特殊的不存在的情况需要单独讨论一下。



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1