LeetCode:3番目に大きい数

タイトル説明

空でない配列を指定して、この配列で3番目に大きい数を返し  ます。存在しない場合は、配列内の最大数を返します

アイデア

  • まず配列を降順で並べ替えます
  • 配列に重複する要素がある可能性があります。次に、フラグ使用して記録し、配列をトラバースします。現在の要素と次の要素が等しくない場合は、flag ++、flag == 2の場合、配列の数は3番目に大きくなります。 、return次の要素
  • 上記の状況が満たされない場合は、3番目に大きい要素がないことを意味nums [0]を直接返し、最大数で十分です。

コード

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

 

おすすめ

転載: blog.csdn.net/weixin_43939602/article/details/114212351