当前位置: 首页> 汽车> 时评 > 代理记账一个月多少钱一个月_网站维护员招聘_品牌建设的五个要素_站长工具seo优化

代理记账一个月多少钱一个月_网站维护员招聘_品牌建设的五个要素_站长工具seo优化

时间:2025/7/12 19:35:28来源:https://blog.csdn.net/lt6666678/article/details/144783151 浏览次数: 0次
代理记账一个月多少钱一个月_网站维护员招聘_品牌建设的五个要素_站长工具seo优化

Problem: 2080. 区间内查询数字的频率
在这里插入图片描述

在这里插入图片描述

👨‍🏫 参考题解
👨‍🏫 参考视频

在这里插入图片描述

🍚 左闭右开二分

class RangeFreqQuery {private final Map<Integer, List<Integer>> pos = new HashMap<>();public RangeFreqQuery(int[] arr) {for (int i = 0; i < arr.length; i++) {//初始化时,存放每个元素出现的下标位置,这个list本身已经是有序的,因为我们是按照下标开始存进去的,存的也是下标pos.computeIfAbsent(arr[i], k -> new ArrayList<>()).add(i);}}public int query(int left, int right, int value) {List<Integer> a = pos.get(value);if (a == null) {return 0;}return lowerBound(a, right + 1) - lowerBound(a, left);}// 开区间写法// 请看 https://www.bilibili.com/video/BV1AP41137w7/// 找到第一个 >= target 的下标,没有则返回数组长度private int lowerBound(List<Integer> a, int target) {// 左闭右开区间 [left, right)int left = 0;int right = a.size();while (left < right) { // 区间不为空int mid = (left + right) >>> 1;if (a.get(mid) < target) {left = mid + 1; // 范围缩小到 [mid + 1, right)} else {right = mid; // 范围缩小到 [left, mid)}}return left; // right 是最小的满足 a[right] >= target 的下标}
}

🍚 开区间二分

class RangeFreqQuery {private final Map<Integer, List<Integer>> pos = new HashMap<>();public RangeFreqQuery(int[] arr) {for (int i = 0; i < arr.length; i++) {//初始化时,存放每个元素出现的下标位置,这个list本身已经是有序的,因为我们是按照下标开始存进去的,存的也是下标pos.computeIfAbsent(arr[i], k -> new ArrayList<>()).add(i);}}public int query(int left, int right, int value) {List<Integer> a = pos.get(value);if (a == null) {return 0;}return lowerBound(a, right + 1) - lowerBound(a, left);}// 开区间写法// 请看 https://www.bilibili.com/video/BV1AP41137w7/private int lowerBound(List<Integer> a, int target) {// 开区间 (left, right)int left = -1;int right = a.size();while (left + 1 < right) { // 区间不为空// 循环不变量:// a[left] < target// a[right] >= targetint mid = (left + right) >>> 1;if (a.get(mid) < target) {left = mid; // 范围缩小到 (mid, right)} else {right = mid; // 范围缩小到 (left, mid)}}return left; // right 是最小的满足 a[right] >= target 的下标}
}
关键字:代理记账一个月多少钱一个月_网站维护员招聘_品牌建设的五个要素_站长工具seo优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: