算法题目-魔力手环
度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?
输入描述:
首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)
输出描述:
如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1
输入例子:
10
10 10 10 10 20 20 30 30 40 40
输出例子:30
题目来自:牛客网https://www.nowcoder.com/questionTerminal/f3aaf8fedcea43c6b12a11710068726b
思路分析:1、首先应该对输入的数组进行排序,2、然后找到第三大的数
算法实现:
import java.util.Arrays;
import java.util.Scanner;
public class Hat {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int N=input.nextInt();
int[] arr=new int[N];
for(int i=0;i<N;i++){
arr[i]=input.nextInt();
}
Arrays.sort(arr);
int count=1;
for(int j=1;j<N;j++){
if(arr[j]>arr[j-1]){
count++;
}
if(count==3){
System.out.println(arr[j]);
break;
}
}
if(count<3){
System.out.println(-1);
}
}
}
Java中的Arrays类
此类包含用来操作数组(比如排序和搜索)的各种方法。
部分转自: