天天看点

2017百度实习生春招java笔试题 输出第三便宜价格

    度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。

    度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?

        输入描述:

              首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)

         输出描述:

        如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1

         输入例子:

        10

        10 10 10 10 20 20 30 30 40 40

         输出例子:

        30

package baidu;

import java.util.Hashtable;

import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Scanner;
/**
 * 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。
 * 度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?
        输入描述:
              首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)
         输出描述:
	    如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1
         输入例子:
		10
		10 10 10 10 20 20 30 30 40 40
         输出例子:
        30
 *
 */
public class ThirdPrice {

	public static void main(String[] args) {

		Scanner input = new Scanner(System.in);
		//使用Hashtable去重
		Hashtable<Integer, Integer> numbers=new Hashtable<>();
		double entry = 0;
		int numCount;//价格的个数

		numCount = input.nextInt();//输入价格的个数
		
		if (numCount <= 50) {
			for (int i = 0; i < numCount; i++) {
				entry = input.nextInt();
				if (entry > 1000 || entry<=0) {
					System.exit(0);
				} else {
					//若Hashtable包含改价格,进行下次循环
					if (numbers.containsKey(entry)) {
						continue;
					}else {
						//若Hashtable内不包含该价格,则放在Hashtable中,
						//这里用key保存价格,因为keyz在Hashtable中只能是唯一的,value设为1,也可以是其他值
						numbers.put((int) entry, 1);
					}
				}
			}

			int[] sortedNumbers = new int[numbers.size()];
			Iterator<Entry<Integer, Integer>> it=numbers.entrySet().iterator();
			int k=0;
			while (it.hasNext()) {
				sortedNumbers[k]=it.next().getKey();//将Hashtable的Key取出放在价格数组中
				k++;
			}
			
			int temp=0; 
			//对价格数组进行排序
	        for (int i=0;i<numbers.size()-1;i++){               
	            for (int j=i+1;j<numbers.size();j++){  
	            if (sortedNumbers[j]<sortedNumbers[i]){  
	                temp=sortedNumbers[j];  
	                sortedNumbers[j]=sortedNumbers[i];  
	                sortedNumbers[i]=temp;  
	                }  
	            }  
	        }
	        
	       
	        int result=0;
	        //输出第三价格
	        if ((result=sortedNumbers[2])!=0) {
	        	System.out.println(sortedNumbers[2]);
			} else {
				System.out.println(-1);//无第三价格,输出-1
			}      	
			

		} else {
			System.exit(0);
		}

	}
}
           

输出结果:

2017百度实习生春招java笔试题 输出第三便宜价格

继续阅读