当我在完成作业时,当我必须在数字列表中找到最大的3个数字(未指定数据结构)时,我会感到很困惑。我完全被我必须做的事感到震惊。有什么帮助吗?
答案 0 :(得分:2)
您可以保留三个变量来存储三个最大值,并遍历数组:
您需要处理三种情况:
当前元素大于最大元素。需要相应更新第二和第三大。
当前元素大于第二大。需要更新第三大。
当前元素大于第三大。
我的code,如果你仍然坚持
for(int i : array)
if(i > largest)
//Do smt
else if(i > second)
//Do smt
else if(i > third)
//Do smt
答案 1 :(得分:0)
int firstNumber=5;
int secondNumber=3;
int thirdNumber=4;
int largestNumber=(firstNumber>secondNumber)?firstNumber:(secondNumber>thirdNumber)?secondNumber:thirdNumber;
System.out.println("largestNumber : "+largestNumber);
答案 2 :(得分:0)
非常简单的方法:
List<Number> numbers = new ArrayList<Number>();
numbers.add(5);
numbers.add(4);
numbers.add(3);
numbers.add(2);
numbers.add(1);
numbers.add(6);
SortedSet<Number> sortedNumbers= new TreeSet<Number>();
sortedNumbers.addAll(numbers);
SortedSet<Number> subSet = sortedNumbers.subSet(sortedNumbers.size()-2, sortedNumbers.size()+1);
for (Number subSet1 : subSet) {
System.out.println(""+subSet1);
}