2019-08-17剑指|2019-08-17剑指 数组中的逆序对
33min,用sublime写的java,很多语法错误。
1.length属性
2.int []
public class Solution {
static int cnt=0;
public int InversePairs(int [] array) {
int[] tmp=new int[array.length];
mergesort(array,0,array.length-1,tmp);
return cnt;
}public void mergesort(int [] array,int left,int right,int []tmp){
if(right==left) return;
#递归忘记递归条件了
int mid=(left+right)>>1;
mergesort(array,left,mid,tmp);
mergesort(array,mid+1,right,tmp);
int p=left,q=mid+1,i=left;
while(p<=mid||q<=right){
if(q>right||(p<=mid &&array[p]<=array[q])) tmp[i++]=array[p++];
else {
cnt+=mid-p+1;
cnt%=1000000007;
tmp[i++]=array[q++];
}
}
for(int j=left;
j<=right;
j++) array[j]=tmp[j];
}
}
【2019-08-17剑指|2019-08-17剑指 数组中的逆序对】注意要点:
1.归并那里的条件很简洁,是很重要的点
2.逆序对的计算用一行就可以解决了,真的出其不意
推荐阅读
- 热闹中的孤独
- JS中的各种宽高度定义及其应用
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- Android中的AES加密-下
- 放下心中的偶像包袱吧
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 如何在Mac中的文件选择框中打开系统隐藏文件夹