首页 > 试题广场 >

牛牛的和平年代

[编程题]牛牛的和平年代
  • 热度指数:1163 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
题目背景:
数轴世界建立之初,还没有任何的生机。直到有一天,在数轴的整点上,慢慢诞生了一个一个新兴的文明。如果两个文明相邻,也就是在他们之间不存在其他的整点,他们就会慢慢受到彼此的影响,逐渐融为一个整体。而当所有的文明大一统,全部融为一个整体的时候,这个数轴世界才会重归和平。为了能够让自己的文明发展壮大,牛牛决定根据每个文明诞生的年代表,计算出什么时候才是和平的黄金时代。

简明题意:
我们定义一个整数可重集合是好的,当且仅当对于集合中任意两个元素 a, b () ,所有满足  的元素 c 都在集合中出现过。
现在,给你一个数组 mSet,你需要做的是,对于这个数组的每一个前缀,判断这个前缀是不是一个好的集合。所以,你将计算出的是一个数组,为布尔类型。

示例1

输入

[3,5,4,6]

输出

[true,false,true,true]

说明

第一个前缀只有一个元素3,按照好的集合的定义,它显然是连续的。
第二个前缀有一个3和一个5,位于3和5之间的元素4却不在集合中,所以它不是连续的。
第三个前缀添加了一个4,弥补了第二个集合缺少4的问题,所以它是好的。
第四个前缀新增了一个6,依旧连续。

备注:
对于所有的数据,满足mSet的大小小于105, mSet[i]是32位有符号整数范围内的元素。
头像 摸鱼学大师
发表于 2021-08-09 13:50:48
思路: 题目的主要信息(直接看题意,背景不重要): 对于数组mSet,每次以前个元素为一个集合,如果集合中出现了最小数到最大数中的所有元素,则返回true,否则返回false 需要判断每一个前缀是否为true,第一个元素一定是true 方法一:排序+暴力解法具体做法:遍历数组mSet,每次将新元 展开全文
头像 ~W~
发表于 2021-09-26 16:09:59
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 检查数组的每个前缀是不是一个好的集合 * @param mSet 展开全文
头像 泪无声呢
发表于 2021-08-10 17:55:10
牛牛的和平年代 问题描述 我们定义一个整数可重集合是好的,当且仅当对于集合中任意两个元素 a, b () ,所有满足 的元素 c 都在集合中出现过。 现在,给你一个数组 mSet,你需要做的是,对于这个数组的每一个前缀,判断这个前缀是不是一个好的集合。所以,你将计算出的是一个数组,为布 展开全文
头像 认认真真coding
发表于 2021-08-15 15:22:52
题目描述我们定义一个整数可重集合是好的,当且仅当对于集合中任意两个元素 a, b (a≤b) ,所有满足 a≤c≤b 的元素 c 都在集合中出现过。现在,给你一个数组 mSet,你需要做的是,对于这个数组的每一个前缀,判断这个前缀是不是一个好的集合。所以,你将计算出的是一个数组,为布尔类型。 方法一 展开全文