博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LintCode] Reverse Pairs 翻转对
阅读量:4650 次
发布时间:2019-06-09

本文共 921 字,大约阅读时间需要 3 分钟。

 

For an array A, if i < j, and A [i] > A [j], called (A [i], A [j]) is a reverse pair.

return total of reverse pairs in A.
Example
Given A = [2, 4, 1, 3, 5] , (2, 1), (4, 1), (4, 3) are reverse pairs. return 3

 

这道题跟LeetCode上的那道是一样的,唯一的一点点的小区别是那道题是返回一个向量,表示出原数组中每一个数字的右边比其小的数的个数,而这道题让我们求翻转对的总数,其实就是把每个数字右边比其小的数的个数都加起来即可,具体讲解请参加之前那篇博客,参见代码如下;

 

class Solution {public:    long long reversePairs(vector
& A) { long long res = 0; vector
v; for (int i = A.size() - 1; i >= 0; --i) { int left = 0, right = v.size(); while (left < right) { int mid = left + (right - left) / 2; if (A[i] > v[mid]) left = mid + 1; else right = mid; } v.insert(v.begin() + right, A[i]); res += right; } return res; }};

 

转载于:https://www.cnblogs.com/grandyang/p/5434414.html

你可能感兴趣的文章
开始写博客啦
查看>>
用TableAdapter创建DataTable定义及查询
查看>>
用 k8s 管理机密信息 - 每天5分钟玩转 Docker 容器技术(155)
查看>>
href,url, src属性的区别
查看>>
Java系列之原生数据类型
查看>>
OD使用教程21(下) - 调试篇21
查看>>
对链表的插入操作
查看>>
Memo组件
查看>>
最新GitHub新手使用教程(Windows Git从安装到使用)——详细图解
查看>>
Qt532界面.ZC测试
查看>>
sql快速删除所用表,视图,存储过程
查看>>
Cat安装
查看>>
字符串hash
查看>>
springboot + swagger2
查看>>
fastJson工具类
查看>>
html5 canvas 垂直渐变描边
查看>>
Asp.net Mvc教程汇总
查看>>
VS2010 c++生成和调用dll例子(转载)
查看>>
后缀数组求字符串最长重复子串
查看>>
angularJS 自定义指令表单验证
查看>>