剑指offer:数组中的逆序对
class Solution {
public:
void solve(int x, int y, vector<int> &A, vector<int> &B, int &ans){//B为临时空间
if(y - x > 1){
int mid = x + (y - x)/2, left = x, right = mid, i = x;
solve(x, mid, A, B, ans);
solve(mid, y, A, B, ans);
int zuo = mid - x;
while(left < mid || right < y){
if(right >= y || (left < mid && A[left] < A[right]))
{B[i++] = A[left++];zuo--;}
else {B[i++] = A[right++];ans = (ans+zuo)00000007;}
}
}
for(int i = x; i < y; i++) A[i] = B[i];
}
int InversePairs(vector<int> data) {
vector<int> tmp = data;
int ans = 0;
solve(0, data.size(), data, tmp, ans);
return ans;
}
};
class Solution {
public:
void solve(int x, int y, vector<int> &A, vector<int> &B, int &ans){//B为临时空间
if(y - x > 1){
int mid = x + (y - x)/2, left = x, right = mid, i = x;
solve(x, mid, A, B, ans);
solve(mid, y, A, B, ans);
int zuo = mid - x;
while(left < mid || right < y){
if(right >= y || (left < mid && A[left] < A[right]))
{B[i++] = A[left++];zuo--;}
else {B[i++] = A[right++];ans = (ans+zuo)00000007;}
}
}
for(int i = x; i < y; i++) A[i] = B[i];
}
int InversePairs(vector<int> data) {
vector<int> tmp = data;
int ans = 0;
solve(0, data.size(), data, tmp, ans);
return ans;
}
};
2020-05-10
在牛客打卡31天,今天学习:刷题 5 道/代码提交 5 次
全部评论
相关推荐
2025-12-06 17:39
中国石油大学(华东) 前端工程师
rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧 点赞 评论 收藏
分享
2025-12-17 12:08
门头沟学院 产品经理
牛客85811352...:1希音不知道算不算大厂
2完全符合,过得很舒服,
3确实只有杂活 点赞 评论 收藏
分享
点赞 评论 收藏
分享
深信服公司福利 845人发布