我正在实现一个代码以返回数组中的第 n 个最大数,以下是我实现的代码;
public int getNthLargestNum(int [] givenArr, int n){
int nTotal=0;
int nNthNum = -1;
// Remove Duplicates
Set<Integer> o_hs = new TreeSet<Integer>();
for(int insert=0; insert<givenArr.length; insert++)
{o_hs.add(givenArr[insert]);}
Iterator it = o_hs.iterator();
int count=0;
while(it.hasNext()){
if(count == n){
// IF I MOVE THE LINE HERE
// nNthNum = (Integer)it.next();
break;
}
nNthNum = (Integer)it.next();
count++;
}
return nNthNum;
}
如果我输入数组 givenArr[4,14,4,5,6,8,9] 和 n=2,则上述程序的输出为 5,但如果我移动行 nNthNum = (Integer)it.next(); 在 if 循环内它输出 4。
所以我很想知道迭代循环我们应该始终实现 it.next()?