2020年蓝桥杯第十一届校内赛真题解析--算法设计--递增三元组的中心
2020-04-02 07:24
316 查看
2020年蓝桥杯第十一届校内赛真题解析--算法设计--递增三元组的中心
比赛记录
本人于2020年3月14日14:00~18:00,参加了本校组织的校内模拟赛 。
本次校内模拟赛的感受较好,我觉得这次的难度适中,大家应该都可以取得自己理想的成绩。
问题描述
在数列 a[1], a[2], …, a
中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。
给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。
输入格式
输入的第一行包含一个整数 n。
第二行包含 n 个整数 a[1], a[2], …, a
,相邻的整数间用空格分隔,表示给定的数列。
输出格式
输入的第一行包含一个整数 n。
第二行包含 n 个整数 a[1], a[2], …, a
,相邻的整数间用空格分隔,表示给定的数列。
样例输入
5
1 2 5 3 5
样例输出
2
样例说明
a[2] 和 a[4] 可能是三元组的中心。
评测用例规模与约定
对于 50% 的评测用例,2 <= n <= 100,0 <= 数列中的数 <= 1000。
对于所有评测用例,2 <= n <= 1000,0 <= 数列中的数 <= 10000。
解析
import java.util.Scanner; public class 递增三元组 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] a = new int[n]; int[] min = new int[n]; int[] max = new int[n]; for (int i = 0; i < n; i++) a[i] = in.nextInt(); min[0] = a[0]; max[n - 1] = a[n - 1]; for (int i = 1; i < n; i++) { min[i] = Math.min(a[i], min[i - 1]); } for (int i = n - 2; i >= 0; i--) { max[i] = Math.max(a[i], max[i + 1]); } int cnt = 0; for (int i = 1; i < n - 1; i++) { if (a[i] > min[i - 1] && a[i] < max[i + 1]) { cnt++; //System.out.println(i + 1); } } System.out.print(cnt); } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 2020年蓝桥杯第十一届校内赛真题解析--算法设计--节目单
- 2020年蓝桥杯第十一届校内赛真题解析--算法设计--种草问题
- 2020年蓝桥杯第十一届校内赛真题解析--算法设计--正整数序列
- 第九届蓝桥杯大赛个人赛省赛(软件类)Java真题 第六题 标题:递增三元组
- 2018 蓝桥杯 省赛 B组 原题 C语言B组 第6题 第九届蓝桥杯真题 递增三元组
- 2018省赛第九届蓝桥杯真题C语言B组第六题题解 递增三元组
- 20180401第九届蓝桥杯省赛B组真题-6递增三元组
- 已知两个链表A和B分别表示两个集合,其元素递增排列。请设计算法求出两个集合A和B的差集(即仅由在A中出现而不在B中出现的元素所构成的集合),并以同样的形式存储,同时返回该集合的元素个数。
- 西南交通大学计算机专业考研真题答案详解5:2013年算法设计题
- 已知线性表中元素以值递增有序排列,并以单链表作为存储结构,设计一个算法,删除表中值相同的多余元素
- 第七届蓝桥杯C/C++省赛B组真题解析与答案
- 西南交通大学计算机专业考研真题答案详解7:2011年算法设计题
- 蓝桥杯:递增三元组
- 笔试真题解析 ALBB-2015 算法工程师实习生机试
- 第九届蓝桥杯省赛C++B组 递增三元组
- 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。
- 第七届蓝桥杯javaB组真题解析-生日蜡烛(第二题)
- 第七届蓝桥杯javaB组真题解析-方格填数(第六题)
- 算法笔记_108:第四届蓝桥杯软件类省赛真题(JAVA软件开发本科A组)试题解答
- 2018 蓝桥杯 省赛 B组 原题 C语言B组 第一题 第九届蓝桥杯真题 第几天 答案+解析+知识点