如何在不删除最大元素并再次搜索的情况下找到以上内容?有没有更有效的方法可以做到这一点?这些元素是否重复并不重要。
最佳答案
for (e: all elements) {
if (e > largest) {
second = largest;
largest = e;
} else if (e > second) {
second = e;
}
}
您可以将
largest
和second
初始化为适当的下限,也可以初始化为列表中的前两项(检查哪个更大,不要忘记检查列表中是否至少有两项)关于c++ - 查找范围中的最大和第二大元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1412751/