系列文章目录
本人最近再练习算法,所以会发布自己的解题思路,希望大家多指教
文章目录
- 系列文章目录
- 前言
- 一、题目描述
- 二、输入描述
- 三、输出描述
- 四、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;}}//不存在比当前数字大的数字,则输出-1if(!flag) {System.out.print("-1,");}}}
五、测试用例
输入:3,4,5,6,3
输出: