当前位置: 首页 > news >正文

力扣493.翻转对

力扣493.翻转对

  • 贪心 + 树状数组

    • 将2*v和v一起加入st集合离散化
    • 最小的数编号越小
    • 之后在把nums[i]加入树状数组时,求编号低的即可
  • 为什么要把2*v也一起离散化?

    • 因为我们通过比较编号来比较数字大小
    • 如果2*v不离散化,它就没有对应编号,无法比较
  •   const int N = 100010;int tr[N],n,limit;class Solution {public:int reversePairs(vector<int>& nums) {n = nums.size();set<long long> st;for(int v:nums){st.insert(v);st.insert((long long)2*v);}int i=1;unordered_map<long long,int> mp;for(auto s:st)mp[s] = i++;memset(tr,0,sizeof tr);int count=0;limit = st.size();for(int i=n-1;i>=0;i--){int r = mp[nums[i]];count += sum(r-1);add(mp[(long long)nums[i]*2],1);}return count;}int lowbit(int x){return x & -x;}void add(int x,int c){for(int i=x;i<=limit;i+=lowbit(i)) tr[i] += c;}int sum(int x){int res=0;for(int i=x;i;i-=lowbit(i)) res += tr[i];return res;}};
    

相关文章:

  • RocketMQ5.0课笔记-架构设计
  • 软件设计之HTML5
  • 本地部署MySQL图形化管理工具phpMyAdmin结合内网穿透远程访问
  • 自定义 SpringBoot starter
  • 文件操作和IO
  • 构建深度学习驱动的多目标检测系统:YOLO模型及应用
  • 高并发内存池
  • Jupyter Notebook 常用快捷键和魔法命令
  • vue中子传父之间通信(this.$emit触发父组件方法和.sync修饰符与$emit(update:xxx))
  • 低GI功能大米升温:千亿规模潜力,解决八成慢病老人主食难题
  • 【栈和队列】常见面试题
  • P1104 生日
  • Linux:多线程(二.理解pthread_t、线程互斥与同步、基于阻塞队列的生产消费模型)
  • MySQL的基本操作
  • NET 定时器 Timer和线程Thread
  • 【笔记】你不知道的JS读书笔记——Promise
  • Android优雅地处理按钮重复点击
  • co模块的前端实现
  • extjs4学习之配置
  • javascript数组去重/查找/插入/删除
  • JWT究竟是什么呢?
  • Leetcode 27 Remove Element
  • select2 取值 遍历 设置默认值
  • 阿里云购买磁盘后挂载
  • 扑朔迷离的属性和特性【彻底弄清】
  • 试着探索高并发下的系统架构面貌
  • 树莓派 - 使用须知
  • 数据科学 第 3 章 11 字符串处理
  • 提醒我喝水chrome插件开发指南
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​ubuntu下安装kvm虚拟机
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #include
  • #php的pecl工具#
  • #QT(串口助手-界面)
  • #QT(一种朴素的计算器实现方法)
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (Note)C++中的继承方式
  • (八)c52学习之旅-中断实验
  • (笔试题)合法字符串
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (计算机网络)物理层
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .Net 路由处理厉害了
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken