leetcode改进 Reverse Pairs
来源:互联网 发布:淘宝怎么提升排名靠前 编辑:程序博客网 时间:2024/06/04 18:31
昨天轻易使用sort处理感到不妥,今天仔细思考了一下,想到一种改进方案。
首先分析sort为何不好
sort应当是
class Solution {public: void merge(vector<int> &nums, int left, int mid, int right, int &cnt) { if (left >= right) return; int lp = mid; int rp = right; int l = mid; int r = right; vector<int> temp; while (lp >= left && rp >= mid+1) { long x = nums[lp]; long y = nums[rp]; if (x > 2 * y) { cnt += (rp-mid); lp--; } else { rp--; } } while (l >= left && r >= mid+1) { int a = nums[l]; int b = nums[r]; if (a > b) { temp.push_back(nums[l]); l--; } else { temp.push_back(nums[r]); r--; } } while (l >= left) { temp.push_back(nums[l]); l--; } while (r >= mid+1) { temp.push_back(nums[r]); r--; } for (int i = left, j = right-left; i <= right, j >= 0; i++, j--) { nums[i] = temp[j]; } } void divide(vector<int> &nums, int left, int right, int &cnt) { if (left >= right) return; int mid = (left + right) / 2; divide(nums, left, mid, cnt); divide(nums, mid+1, right, cnt); merge(nums, left, mid, right, cnt); } int reversePairs(vector<int>& nums) { int cnt = 0; divide(nums, 0, nums.size()-1, cnt); return cnt; }};
可以看到比之前快了一些。。。
不过好像还不是很快。。。。
emmm也许需要参考之前有看到过的利用快排的思想解决问题的方法了
阅读全文
0 0
- leetcode改进 Reverse Pairs
- [LeetCode]493. Reverse Pairs
- leetCode:493. Reverse Pairs
- leetcode练习 Reverse Pairs
- Leetcode:493. Reverse Pairs
- leetcode 493. Reverse Pairs
- LeetCode week 1 : Reverse Pairs(493)
- [Leetcode] 493. Reverse Pairs 解题报告
- Reverse Pairs
- 【LeetCode】Swap Nodes in Pairs && Reverse Nodes in k-Group
- 【LeetCode】Swap Nodes in Pairs & Reverse Nodes in k-Group
- [leetcode]Swap Nodes in Pairs Reverse Nodes in k-Group
- [Leetcode] Swap Nodes in Pairs & Reverse Nodes in k-Group
- [LeetCode]493. Reverse Pairs 深入浅出算法讲解和代码示例
- leetcode 493. Reverse Pairs 归并排序统计逆序对数量
- Count Reverse Pairs - C++
- #532 Reverse Pairs
- 493. Reverse Pairs
- 1277 字符串中的最大值 next数组的妙用
- CSS的长度、角度、时间
- Python量化交易talib中SMA模块介绍
- hdu 4850 Wow! Such String! 构造 欧拉回路
- Android系统权限说明
- leetcode改进 Reverse Pairs
- struts2框架搭建开发环境
- 2017 ACM/ICPC Asia Regional Shenyang Online 1001(hdu 6194)
- PAT练习(4)-1044 Table Tennis (30)
- [LeetCode]169.Majority Element
- Unity3D 设计模式---策略模式
- 轮播图Banner使用
- HDU 5534 Partial Tree 【完全背包+思维】
- 基于Scikit-Learn的五个文本分类案例研究