问题:对于一列数,求出其中的第二大值。
一、求数组中第二大值的错误方式(常见)
查看了很多资料,很多博客主要介绍的方法和思路有以下2种:
- sorted() 进行排序后,直接对数去进行取值,将数组倒数第二个值当做数组的第二大值;
- 自定义排序 例如:https://blog.csdn.net/together_cz/article/details/77771125
但是很少考虑数组中的最大值是否唯一。当数组的有多个最大值时,需要判断并进行优化。当数组中有多个最大值或者不确定最大值是否唯一时,需要进行改进优化。
错误案例
(1) sorted()先对数据递增排序后,取倒数第二个数。
——只适用于数组只有唯一一个最大值,当数组含有多个最大值时不适用。
数组只有一个最大值时:正确。