系列文章目录
本人最近再练习算法,所以会发布自己的解题思路,希望大家多指教
文章目录
- 系列文章目录
- 前言
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 四、java代码
- 五、测试用例
前言
一、题目描述
贫如洗的椎夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0-N的箱子,每个箱子上面有一人数字,箱子排列成一个环,编号最大的箱子的下一个是编号为0的箱子。请输出每个箱了贴的数字之后的第一个比它大的数,如果不存在则输出-1。
二、输入描述
输入一个数字字串,数字之间使用逗号分隔,例如: 1,2,3,1 1≤ 字串中数字个数 ≤10000: -100000≤每个数字值≤100000
三、输出描述
下一个大的数列表,以逗号分隔,例如: 2,3,6,-1,6
四、java代码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] array = Arrays.stream(sc.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
for (int i = 0; i < array.length; i++) {
//初始化比较的起始位置
int n = i+1;
boolean flag = false;
//需要循环比较的次数
for (int j = 0; j < array.length - 1; j++) {
int m = n++ % array.length;
//找到第一个满足要求的数字,输出,并跳出当前循环
if(array[i] < array[m]) {
flag = true;
System.out.print(array[m]+",");
break;
}
}
//不存在比当前数字大的数字,则输出-1
if(!flag) {
System.out.print("-1,");
}
}
}
五、测试用例
输入:3,4,5,6,3
输出: