【剑指offer】5.3时间效率与空间效率的平衡——面试题36:数组中的逆序对
来源:互联网 发布:淘宝网夏季女装上衣 编辑:程序博客网 时间:2024/05/22 02:20
树状数组的思想,不过会受到N的影响,扩展离散+树状数组(树状数组相关内容参考http://blog.csdn.net/shahdza/article/details/6314818)
//题目描述//在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。#include<iostream>#include<vector>using namespace std;const int N=100005;class Solution {public: int InversePairs(vector<int> data) { int n=data.size(); if(n==0)return 0; int cnt=0; for(int i=1;i<=n;i++){ cnt+=i-getSum(data[i-1])-1; update(data[i-1],1); } return cnt; }private:int lowbit(int x){return x&(-x);}void update(int x,int val){while(x<N){d[x]+=val;x+=lowbit(x);}}int getSum(int n){int s=0;while(n){s+=d[n];n-=lowbit(n);}return s;}private:int d[N]={0};};int main(){Solution test=Solution();vector<int>v;int n;cin>>n;for(int i=0;i<n;i++){int tmp;cin>>tmp;v.push_back(tmp);}cout<<test.InversePairs(v)<<endl;return 0;}
0 0
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题36:数组中的逆序对
- 时间效率与空间效率的平衡-面试题36-数组中的逆序对
- 剑指offer:(36)时间效率和空间效率的平衡 :数组中的逆序对
- 剑指offer 36题 【时间空间效率的平衡】数组中的逆序对
- 剑指offer-5-面试36:数组中的逆序对(时间效率和空间效率的平衡)
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题34:丑数
- 《剑指offer》刷题笔记(时间空间效率的平衡):数组中的逆序对
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题35:第一个只出现一次的字符
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题37:两个链表的第一个公共结点
- 剑指offer 面试题36—数组中的逆序对
- 剑指offer 5.3 时间与空间效率平衡 -丑数
- 时间效率与空间效率的平衡-面试题34-丑数
- 【剑指offer】5.2时间效率——面试题31:连续子数组的最大和
- 【剑指offer】5.2时间效率——面试题33:把数组排成最小的数
- 时间效率与空间效率的平衡
- 时间效率与空间效率的平衡-面试题35-第一个只出现一次的字符
- 剑指offer 算法 (时间空间效率的平衡)
- 《剑指Offer》面试题:数组中的逆序对的总数
- 高精度模板
- linux C中调用shell命令和运行shell脚本
- nginx 学习笔记
- JS的奇怪问题
- java中的封装、继承与多态
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题36:数组中的逆序对
- 去掉Bom头的方法和为什么要清除Bom头
- Android 属性动画(Property Animation) 完全解析 (上)
- SeekBar+ImageView实现图像动态变化
- 第三方库 FMDB的使用
- android开发之一:android studio与Genymotion
- 曼-惠特尼U检验
- React-Native——RN环境安装
- Android 属性动画(Property Animation) 完全解析 (下) 标签: AndroidProperty Animation