酒店网站建设论文,新手做站必看 手把手教你做网站,加盟网站制作公司,免费观看高清正能量直播下载目录 专栏导读一、题目描述二、输入描述三、输出描述大白话解释一下就是#xff1a;1、输入#xff1a;2、输出#xff1a;3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中#xff0c;刷题点这里 专栏导读
本专… 目录 专栏导读一、题目描述二、输入描述三、输出描述大白话解释一下就是1、输入2、输出3、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中刷题点这里 专栏导读
本专栏收录于《华为OD机试JAVA真题A卷B卷》。
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。
一、题目描述
在学校中N个小朋友站成一队第i个小朋友的身高为height[i]第i个小朋友可以看到的第一个比自己身高更高的小朋友j那么是的好朋友(要求ji)。
请重新生成一个列表对应位置的输出是每个小朋友的好朋友位置如果没有看到好朋友请在该位置用0代替。
小朋友人数范围是[0,40000]
二、输入描述
第一行输入NN表示有N个小朋友
第二行输入N个小朋友的身高height[i]都是整数
三、输出描述
输出N个小朋友的好朋友的位置。 N个小朋友站成一队第i个小朋友的身高为height[i]第i个小朋友可以看到的第一个比自己身高更高的小朋友j那么是的好朋友(要求ji)。 大白话解释一下就是
有一行数找到比当前数大的第一个数输出其下角标如果没有输出0
用例
1、输入
8 123 124 125 121 119 122 126 123
2、输出
1 2 6 5 5 6 0 0
3、说明
123的好朋友是1位置上的124124的好朋友是2位置上的125125的好朋友是6位置上的126121的好朋友是5位置上的122119的好朋友是5位置上的122122的好朋友是6位置上的126126没有好朋友1223没有好朋友
四、解题思路
本题还是比较简单的理解题意才是关键。
输入 N个小朋友输入N个小朋友的身高非法校验遍历N个小朋友的身高 找到比当前身高大的第一个身高并获取其下角标如果未找到则默认0 按照指定格式输出。
五、Java算法源码
public static void main(String[] args) {Scanner sc new Scanner(System.in);// N个小朋友int n Integer.valueOf(sc.nextLine());// N个小朋友的身高int[] arr Arrays.stream(sc.nextLine().split( )).mapToInt(Integer::parseInt).toArray();// 非法校验if (n 0 || n 40000 || n ! arr.length) {System.out.println(input error);return;}// 遍历N个小朋友的身高ListInteger list new ArrayList();for (int i 0; i n; i) {boolean flag false;// 找到比当前身高大的第一个身高并获取其下角标for (int j i; j n; j) {if (arr[j] arr[i]) {list.add(j);flag true;break;}}// 如果未找到则默认0if (!flag) {list.add(0);}}StringJoiner stringJoiner new StringJoiner( );list.forEach(x-stringJoiner.add(String.valueOf(x)));System.out.println(stringJoiner);
}六、效果展示
1、输入
8 123 124 125 121 119 122 126 123
2、输出
1 2 6 5 5 6 0 0
3、说明
123的好朋友是1位置上的124124的好朋友是2位置上的125125的好朋友是6位置上的126121的好朋友是5位置上的122119的好朋友是5位置上的122122的好朋友是6位置上的126126没有好朋友1223没有好朋友 下一篇华为OD机试 - 荒岛求生 - 栈StackJava 2023 B卷 100分
本文收录于华为OD机试JAVA真题A卷B卷
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。