LeetCode: el tercer número más grande

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];       
    }
}

 

Supongo que te gusta

Origin blog.csdn.net/weixin_43939602/article/details/114212351
Recomendado
Clasificación