java解法:
package com.example.replay.Problems;
import java.util.Arrays;
public class Dominate_count {
private int size_f;
private int size_g;
private int f[];
private int g[];
private int count;
public void init(int size1, int size2){
size_f = size1;
size_g = size2;
f = new int[size_f];
g = new int[size_g];
for(int i = 0; i < size_f ;i++){
f[i] = (int) (Math.random() * 10);
}
for(int i = 0; i < size_g; i++){
g[i] = (int) (Math.random() * 10);
}
Arrays.sort(f);
Arrays.sort(g);
for(int i = 0; i < size_f ;i++){
System.out.print(f[i]);
System.out.print(" ");
}
System.out.println();
for(int i = 0; i < size_g; i++){
System.out.print(g[i]);
System.out.print(" ");
}
System.out.println();
}
public void compute(){
int index_f = 0,index_g = 0;
count = 0;
//如果f[i]>g[j],则f[i]大于j之后的数;如果小于,则f往后找
while (index_f < size_f && index_g < size_g){
if(f[index_f] <= g[index_g])
index_f++;
else{
index_g++;
count += size_g - index_f;
}
}
System.out.println(this.count);
}
public static void main(String[] args) {
Dominate_count dominate_count = new Dominate_count();
dominate_count.init(3,3);
dominate_count.compute();
}
}
测试:
结果一
0 2 9
5 7 9
2
结果二
1 4 9
0 1 8
6