Descripción del Título
Darle una matriz no vacía y devolver el tercer número más grande en esta matriz . Si no existe, devuelve el número más grande de la matriz.
Ideas
- Primero ordena la matriz en orden descendente
- Puede haber elementos duplicados en la matriz, luego usamos una bandera para registrar , atravesar la matriz, si el elemento actual y el siguiente elemento no son iguales, entonces marca ++, cuando bandera == 2, entonces la matriz tiene el tercer número más grande , devuelve el siguiente elemento
- Si no se cumple la situación anterior, significa que no hay un tercer elemento más grande , devuelve directamente nums [0] , el número más grande es suficiente
Código
class Solution {
public int thirdMax(int[] nums) {
for(int bound=0;bound<nums.length;bound++){
for(int cur=nums.length-1;cur>bound;cur--){
if(nums[cur]>nums[cur-1]){
int temp=nums[cur];
nums[cur]=nums[cur-1];
nums[cur-1]=temp;
}
}
}
int flag=0;
for(int i=0;i<nums.length-1;i++){
if(nums[i]!=nums[i+1]){
flag++;
}
if(flag==2){
return nums[i+1];
}
}
return nums[0];
}
}