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

程序员做图网站dede响应式网站模板

程序员做图网站,dede响应式网站模板,列表网做优化网站怎么样,网站备案信息查询申请解题思路1#xff1a; 看到这个题目#xff0c;我们的第一反应是顺序扫描整个数组。每扫描到一个数组的时候#xff0c;逐个比较该数字和它后面的数字的大小。如果后面的数字比它小#xff0c;则这两个数字就组成了一个逆序对。假设数组中含有n个数字。由于每个数字都要和… 解题思路1 看到这个题目我们的第一反应是顺序扫描整个数组。每扫描到一个数组的时候逐个比较该数字和它后面的数字的大小。如果后面的数字比它小则这两个数字就组成了一个逆序对。假设数组中含有n个数字。由于每个数字都要和O(n)这个数字比较因此这个算法的时间复杂度为O(n^2)。 我们以数组{7,5,6,4}为例来分析统计逆序对的过程。每次扫描到一个数字的时候我们不拿ta和后面的每一个数字作比较否则时间复杂度就是O(n^2)因此我们可以考虑先比较两个相邻的数字。 (a) 把长度为4的数组分解成两个长度为2的子数组 (b) 把长度为2的数组分解成两个成都为1的子数组 (c) 把长度为1的子数组 合并、排序并统计逆序对  (d) 把长度为2的子数组合并、排序并统计逆序对 在上图a和b中我们先把数组分解成两个长度为2的子数组再把这两个子数组分别拆成两个长度为1的子数组。接下来一边合并相邻的子数组一边统计逆序对的数目。在第一对长度为1的子数组{7}、{5}中7大于5因此7,5组成一个逆序对。同样在第二对长度为1的子数组{6}、{4}中也有逆序对6,4。由于我们已经统计了这两对子数组内部的逆序对因此需要把这两对子数组 排序 如上图c所示 以免在以后的统计过程中再重复统计。 接下来我们统计两个长度为2的子数组子数组之间的逆序对。合并子数组并统计逆序对的过程如下图如下图所示。 我们先用两个指针分别指向两个子数组的末尾并每次比较两个指针指向的数字。如果第一个子数组中的数字大于第二个数组中的数字则构成逆序对并且逆序对的数目等于第二个子数组中剩余数字的个数如下图a和c所示。如果第一个数组的数字小于或等于第二个数组中的数字则不构成逆序对如图b所示。每一次比较的时候我们都把较大的数字从后面往前复制到一个辅助数组中确保 辅助数组记为copy 中的数字是递增排序的。在把较大的数字复制到辅助数组之后把对应的指针向前移动一位接下来进行下一轮比较。 过程先把数组分割成子数组先统计出子数组内部的逆序对的数目然后再统计出两个相邻子数组之间的逆序对的数目。在统计逆序对的过程中还需要对数组进行排序。如果对排序算法很熟悉我们不难发现这个过程实际上就是归并排序。 public class Solution {public int InversePairs(int [] array) {if(array null || array.length 0){return 0;}//和array长度一样的copy数组int[] copy new int[array.length];int count inversePairsCore(array, copy, 0, array.length - 1);return count;}public int inversePairsCore(int[] array, int[] copy, int low, int high){if(low high){return 0;}//计算中间下标int mid (low high)1;//中间下标int i mid;//最大下标int j high;//copy数组的最大下标int indexCopy high;//获得左边数组的逆序对int leftCount inversePairsCore(array, copy, low, mid)%1000000007;//获得右边数组的逆序对int rightCount inversePairsCore(array, copy, mid 1, high)%1000000007;int count 0;while(i low j mid){if(array[i] array[j]){//计算逆序对count j - mid;//左边数组向左移动一位并将值存入copy中copy[indexCopy]array[i--];if(count 1000000007){count%1000000007;}}else{//右边数组向左移动一位并将值存入copy中copy[indexCopy]array[j--];}indexCopy--;}//左边剩余数组存入到copy中for(; i low; i--){copy[indexCopy--] array[i];}//右边剩余数组存入到copy中for(; j mid; j--){copy[indexCopy--] array[j];}//将排过序的数组在array中同步for(int s low; s high; s){array[s] copy[s];}return (leftCount rightCount count)%1000000007;} }
http://www.w-s-a.com/news/409598/

相关文章:

  • 建设企业网站可信度软件产品如何做网站推广
  • 网站建设企业号助手贵阳景观设计公司
  • 网站开发第三方建设银行个人网站显示不了
  • 无锡兼职做网站郑州网站建设搜索优化
  • iis禁止通过ip访问网站品牌策划案例ppt
  • 电子商务网站建设实习seo黑帽优化
  • 如何做好网站建设销售闸北集团网站建设
  • 重庆装饰公司北京官网seo推广
  • 深圳网站设计灵点网络品牌网站充值接口
  • 建设书局 网站国内国际时事图片
  • 成都 网站建设培训学校屏蔽wordpress自带编辑器
  • 公司网站制作工作室中天建设集团有限公司第五建设公司
  • 网站的网页设计毕业设计苏州宣传册设计广告公司
  • 商城网站优化方案注册公司制作网站
  • 政务服务网站建设整改报告wordpress的导航代码
  • 图片素材网站建设做教育网站用什么颜色
  • 快站淘客中转页wordpress商业插件
  • 可信网站网站认证免费软件下载网站免费软件下载网站
  • 小学生网站制作最新域名网站
  • 奖励网站代码设计制作ppt时
  • 茂名优化网站建设门户网站和部门网站的区别
  • 一尊网 又一个wordpress站点wordpress获取当前文章名称
  • 营销型网站多少钱新建网站的外链多久生效
  • 网站空间怎么选择tp5企业网站开发百度云
  • 网站建设saas排名成立公司的流程和要求及费用
  • 网站建设共享骨科医院网站优化服务商
  • 肯尼亚网站域名万能进销存软件免费版
  • 做商城网站价格上海做网站建设
  • 广州制作外贸网站公司阿里云网站模板
  • 做网站为什么要买服务器十堰城市建设网站