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

网站建设和执纪监督流量查询网站

网站建设和执纪监督,流量查询网站,网站建设赛车,印章在线生成题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 题解: ① 我最开始想的蠢方法(会超时,可跳过&#xff…

题目:
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。

题解:
① 我最开始想的蠢方法(会超时,可跳过)
首先题目求的逆序对,这考虑的关键应该就是 位置 和 大小

那么我们先将大小排个序,然后从小到大考虑

然后我们按数字从小到大放到由位置排序的容器中
每一次放入,二分搜索当前要放入值的位置,其之后的值的数量,就是该值组成的逆序对数量
这样是不是可以只用考虑位置(因为之前放入容器的值的大小都小于当前值)

这样排序 O(nlogn),然后每次放入值前二分搜索 O(nlogn),但是还是超时了
应该是那个 insert 复杂度太高了,没办法,vector 的 insert 复杂度为 O(n)
想过用其他容器,但好像都不能解决,要是大佬有方法,欢迎评论私信,真想不出来 😟

代码如下:

class Solution {
public:vector<pair<int, int> > temp1;vector<pair<int, int> > temp2;int reversePairs(vector<int>& nums) {int res = 0;for(int i = 0; i < nums.size(); i++) {temp1.push_back(make_pair(nums[i], i));}sort(temp1.begin(), temp1.end());for(int i = 0; i < temp1.size(); i++) {pair<int, int> t = make_pair(temp1[i].second, temp1[i].first);int f = lower_bound(temp2.begin(), temp2.end(), t) - temp2.begin();res = res + i - f;temp2.insert(temp2.begin() + f, t);}return res;}
};

② 分治法(害,我这笨脑子,真的想不到啊)
分治排序都知道吧
我们在排序的过程中,考虑逆序对数量

首先两个有序的序列,求逆序对数量
左边的序列中的某个值所组成逆序对等于右边所有小于它的值的数量

可以通过分治法求解的原理,即
局部的排序,不会影响这部分和其他部分组成逆序对

代码如下:

class Solution {
public:vector<int> numbers;int res = 0;void solve(int l, int r) {int mid = (r + l) / 2;if(r - l > 1) {solve(l, mid);solve(mid, r);}else {return;}vector<int> temp;int flag1 = l, flag2 = mid;while(flag1 < mid) {while(flag2 < r && numbers[flag1] > numbers[flag2]) {temp.push_back(numbers[flag2]);flag2++;}temp.push_back(numbers[flag1]);flag1++;res = res + flag2 - mid;}while(flag2 < r) {temp.push_back(numbers[flag2]);flag2++;}for(int i = l; i < r; i++) {numbers[i] = temp[i - l];}}int reversePairs(vector<int>& nums) {numbers = nums;solve(0, nums.size());return res;}
};
http://www.tj-hxxt.cn/news/66394.html

相关文章:

  • 长沙网站推广排名武汉武汉最新
  • 网站建设培训学校广州搜索引擎优化策略不包括
  • 网站引导动画怎么做的中文搜索引擎排名
  • 怎么用2级目录做网站新网站推广最直接的方法
  • WordPress教育类响应式主题重庆seo网站排名
  • phpmysql动态网站开发网站推广排名哪家公司好
  • 如何在局域网上做网站怎样让自己的网站排名靠前
  • 婚恋交友网站制作分类达人介绍
  • 班级网站开发与设计快手seo关键词优化
  • 北京网站建设方案报价网页设计模板网站免费
  • 阿里云网站目录代刷网站推广链接免费
  • 福州金山网站建设手机网站建设价格
  • 全国加盟网站建设东莞市网络seo推广企业
  • 网站 做实名认证吗网站平台有哪些
  • 辽宁鞍山玉佛苑淘宝seo优化是什么
  • 制造业外贸营销网站建设成全视频免费观看在线看
  • 广州专业做网站排名哪家好免费拓客软件哪个好用
  • 信誉好的武汉网站建设青岛网站建设培训学校
  • 南京网站设计制作流量网站
  • 凡科网制作网站教程二级域名注册平台
  • 织梦模板下载商城网站模板(高端大气上档次:带数据)企业网站推广策划书
  • 有哪些做ppt的网站有哪些互联网推广平台
  • 深圳app网站建设陈俊兵软文营销网站
  • 网站制作费可以做业务宣传费国家提供的免费网课平台
  • 襄阳网站建设公司百度快照推广一年要多少钱
  • 什么是b2c网站关键词自动生成器
  • 兰州论坛网站建设深圳市网络seo推广平台
  • 网络营销建议seo月薪
  • p2p网站建设 上海软文营销怎么做
  • 网站规划与建设是什么意思珠海网站建设优化