• 剑指offer-数组中的逆序对


    题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007

    输入描述:

    题目保证输入的数组中没有的相同的数字

    数据范围:

    对于%50的数据,size<=10^4

    对于%75的数据,size<=10^5

    对于%100的数据,size<=2*10^5

    示例1
    输入
    1,2,3,4,5,6,7,0

    输出
    7
    思路:没有想到什么更好的办法,就只好暴力,即冒泡排序中交换的次数
    ac代码:
     1 public class Solution {
     2     public int InversePairs(int [] array) {
     3         int n=array.length;
     4         int sum=0;
     5         for(int i=0;i<n-1;i++){
     6                 boolean flag=false;
     7                 for(int j=0;j<n-i-1;j++){
     8                     if(array[j]>array[j+1]){
     9                         int t=array[j];
    10                         array[j]=array[j+1];
    11                         array[j+1]=t;
    12                         sum=(sum+1)%1000000007;
    13                         flag=true;
    14                     }
    15                 }
    16                 if(!flag)
    17                     break;
    18         }
    19         return sum;
    20     }
    21 }
     
  • 相关阅读:
    FactoryBean的作用
    ztree点击文字勾选checkbox,radio实现方法
    js判断字符长度 汉字算两个字符
    双系统引导修复
    thinkpadT440p
    分布式服务器集群
    Eclipse插件安装方式
    用SourceTree轻巧Git项目图解
    廖雪峰git使用完整教程
    hessian
  • 原文地址:https://www.cnblogs.com/llsq/p/8809600.html
Copyright © 2020-2023  润新知