Java | Leetcode Java题解之第493题翻转对

news/2024/10/19 8:21:40/

题目:

题解

class Solution {public int reversePairs(int[] nums) {Set<Long> allNumbers = new TreeSet<Long>();for (int x : nums) {allNumbers.add((long) x);allNumbers.add((long) x * 2);}// 利用哈希表进行离散化Map<Long, Integer> values = new HashMap<Long, Integer>();int idx = 0;for (long x : allNumbers) {values.put(x, idx);idx++;}int ret = 0;BIT bit = new BIT(values.size());for (int i = 0; i < nums.length; i++) {int left = values.get((long) nums[i] * 2), right = values.size() - 1;ret += bit.query(right + 1) - bit.query(left + 1);bit.update(values.get((long) nums[i]) + 1, 1);}return ret;}
}class BIT {int[] tree;int n;public BIT(int n) {this.n = n;this.tree = new int[n + 1];}public static int lowbit(int x) {return x & (-x);}public void update(int x, int d) {while (x <= n) {tree[x] += d;x += lowbit(x);}}public int query(int x) {int ans = 0;while (x != 0) {ans += tree[x];x -= lowbit(x);}return ans;}
}

http://www.ppmy.cn/news/1540216.html

相关文章

基于vue框架的的大学校园社团管理系统q00q2(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;学生,社团管理员,社团介绍,加入社团,社团活动,参加活动,社团新闻,社团成员 开题报告内容 基于Vue框架的大学校园社团管理系统开题报告 一、项目背景与意义 随着高等教育的普及和大学生对多样化、个性化需求的增加&#xff0c;大学校园…

springboot web 和webflux两个都引用会怎样?

前一篇发了 springboot 启动 Check your application‘s dependencies for a supported reactive web server-CSDN博客 虽然是解决了&#xff0c;但还是要一探究竟 原因&#xff1a; 在我的项目里引用了pom.xml 引入了 spring.boot.parent 此时如果直接写SpringBootApplicat…

MySQL数据库增删改查基础操作(超长详解)

目录 1库的操作 显示数据库&#xff1a; 创建一个库 使用数据库 删除数据库的名 2表操作&#xff1a; 显示表 创建表 查看表 删除表名 新增 查出表的所有行和列&#xff1b; 实例&#xff1a; 别名&#xff1a; 去重&#xff1a; 排序&#xff1a; 限制查找的…

第一百零七周周报

学习时间&#xff1a; 2024.10.12-2024.10.18 学习产出&#xff1a; 这周大部分时间都在黄山开会&#xff0c;目前cifar10还没调好&#xff0c;celebA128的fid到了13点多&#xff0c;还没有跑完&#xff0c;其他时间都在找工作。

基于Flink+Hologres搭建实时数仓

Apache Paimon是一种流批统一的数据湖存储格式&#xff0c;结合Flink及Spark构建流批处理的实时湖仓一体架构。Paimon创新地将湖格式与LSM技术结合起来&#xff0c;给数据湖带来了实时流更新以及完整的流处理能力。借助实时计算Flink版与Apache Paimon&#xff0c;可以快速地在…

矩阵相关算法

矩阵旋转90度 给定一个 n n 的二维矩阵 matrix 表示一个图像&#xff0c;请你将图像顺时针旋转 90 度。 #include <iostream> #include <vector>using namespace std;void rotate(vector<vector<int>>& matrix) {int n matrix.size();// 第一步…

侏罗纪公园不再是电影了吗?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

每日回顾:简单用C写 选择排序、堆排序

选择排序 直接选择排序&#xff08;Selection Sort&#xff09;是一种简单的排序算法。它的基本思想是每次从未排序的部分中选择最小&#xff08;或最大&#xff09;的元素&#xff0c;将其放到已排序部分的末尾。 版本一&#xff1a; //直接选择排序1 void SelectSort_1(in…