金鱼饭饭


私信TA

用户名:yyy666

访问量:20721

签 名:

等  级
排  名 747
经  验 3668
参赛次数 0
文章发表 36
年  龄 0
在职情况 在职
学  校 不知道学院
专  业

  自我简介:

我愿能朝着太阳生长,做一个温暖的人,不卑不亢,清澈生活!

解题思路:

    遍历数组B,找出数组A中比当前数字小的数字个数,找出数组C中比当前数字大的数字个数,两个数字相乘得到数组B中当前数组能组成的三元组个数。

    具体实现参考代码注释。

注意事项:

参考代码:

import java.util.Scanner;

/**
 * 题目地址:https://www.dotcpp.com/oj/problem2194.html
 * @author yang
 *
 */
public class Seq2194 {

	public static void main(String[] args) {
		// 输入
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] a = new int[n];
		int[] b = new int[n];
		int[] c = new int[n];
		
		for(int i =0; i<n*3; i++){
			if(i<n){
				a[i]=sc.nextInt();
			}else if(i<n*2){
				b[i-n]=sc.nextInt();
			}else{
				c[i-n*2]=sc.nextInt();
			}
		}
		
		int count = 0;
		
		// 判断:遍历数组b
		for(int i =0; i<n; i++){
			// 判断数组a中比b小的数字个数
			int min = 0;
			for(int k = 0; k<n; k++){
				if(a[k]<b[i]){
					min++;
				}
			}
			// 判断数组c中比b大的数字个数
			int max = 0;
			for(int k = 0; k<n; k++){
				if(c[k]>b[i]){
					max++;
				}
			}
			// 计算
			count += min*max;
		}
		
		// 输出
		System.out.println(count);
	}
	
}


 

0.0分

1 人评分

  评论区