【题解 | 思维】三元组中心问题

三元组中心问题

注意点:

  1. 同一个位置的元素,不管以它为中心能组成多少个三元组,只记一个
  2. 不同索引位置的相同元素,算多个中心元素

常规暴力

java 复制代码
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		int numbers[] = new int[n + 1];
		for (int i = 1; i < n + 1; i++) {
			numbers[i] = in.nextInt();
		}
		int ans = 0;
		int help[] = new int[n + 1];
		for (int i = 1; i < n + 1; i++) {
			for (int j = i + 1; j < n + 1; j++) {
				for (int k = j + 1; k < n + 1; k++) {
					if (numbers[i] < numbers[j] && numbers[j] < numbers[k]) {
						help[j] = 1;
					}
				}
			}
		}
		for (int j = 1; j < n + 1; j++) {
			if (help[j] != 0) {
				ans++;
			}
		}
		System.out.println(ans);
		in.close();
	}
}

Stream流

java 复制代码
import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		int[] numbers = new int[n];
		for (int i = 0; i < n; i++) {
			numbers[i] = in.nextInt();
		}
		int ans = 0;
		for (int i = 1; i < n; i++) {
			if (numbers[i] > Arrays.stream(numbers, 0, i).min().getAsInt()
			 && numbers[i] < Arrays.stream(numbers, i, n).max().getAsInt()) {
				ans++;
			}
		}
		System.out.println(ans);
		in.close();
	}
}

对数组numbers进行遍历,从第二个元素开始,到倒数第二个元素结束(因为作为递增三元组的中心,至少需要有一个元素在它的左边和右边)。

对于每个元素,检查它是否大于它左边的所有元素中的最小值 ,并且小于它右边的所有元素中的最大值。如果满足这两个条件,那么这个元素就可能作为递增三元组的中心,计数器ans增加1。

相关推荐
计算机毕设VX:Fegn08951 分钟前
计算机毕业设计|基于springboot + vue图书商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
R.lin13 分钟前
Java 8日期时间API完全指南
java·开发语言·python
毕设源码-赖学姐19 分钟前
【开题答辩全过程】以 高校教学质量监控平台为例,包含答辩的问题和答案
java·eclipse
yongui4783425 分钟前
MATLAB的指纹识别系统实现
算法
高山上有一只小老虎26 分钟前
翻之矩阵中的行
java·算法
jghhh0134 分钟前
RINEX文件进行卫星导航解算
算法
火钳游侠40 分钟前
java单行注释,多行注释,文档注释
java·开发语言
爱思德学术1 小时前
中国计算机学会(CCF)推荐学术会议-A(计算机科学理论):LICS 2026
算法·计算机理论·计算机逻辑
CVHub1 小时前
多模态图文训推一体化平台 X-AnyLabeling 3.0 版本正式发布!首次支持远程模型推理服务,并新增 Qwen3-VL 等多款主流模型及诸多功能特性,等
算法
code bean1 小时前
【CMake】为什么需要清理 CMake 缓存文件?深入理解 CMake 生成器切换机制
java·spring·缓存