第三大的數

2021-10-11 15:57:14 字數 1092 閱讀 8147

第三大的數

給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o(n)。

示例 1:

輸入:[3, 2, 1]輸出:1解釋:第三大的數是 1.

示例 2:

輸入:[1, 2]輸出:2解釋:第三大的數不存在, 所以返回最大的數 2 .

示例 3:

輸入:[2, 2, 3, 1]輸出:1解釋:注意,要求返回第三大的數,是指第三大且唯一出現的數。

存在兩個值為2的數,它們都排第二

方法一:變數3次

public int thirdmax(int nums) 

if(nums.length==2)

long max1 = findmax(nums, integer.max_value);//最大

long max2 = findmax(nums, (int)max1);//第二大

long max3= findmax(nums, (int)max2);

if(max3==long.min_value)

return (int)max3;

}public long findmax(int nums,int alreadymax) else if(nums[i]>max2&&nums[i]!=max1) else if(nums[i]>max3&&nums[i]!=max2&&nums[i]!=max1)

}return max3==long.min_value?(int)max1:(int)max3;

}

第三大的數

給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o n 示例 1 輸入 3,2,1 輸出 1 解釋 第三大的數是 1.示例 2 輸入 1,2 輸出 2 解釋 第三大的數不存在,所以返回最大的數 2 示例 3 輸入 2,2,3,1 輸出 1 解釋 ...

414 第三大的數

給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o n 示例 1 輸入 3,2,1 輸出 1 解釋 第三大的數是 1.示例 2 輸入 1,2 輸出 2 解釋 第三大的數不存在,所以返回最大的數 2 示例 3 輸入 2,2,3,1 輸出 1 解釋 ...

414 第三大的數

給定乙個非空陣列,返回此陣列中第三大的數。如果不存在,則返回陣列中最大的數。要求演算法時間複雜度必須是o n 示例 1 輸入 3,2,1 輸出 1 解釋 第三大的數是 1.示例 2 輸入 1,2 輸出 2 解釋 第三大的數不存在,所以返回最大的數 2 示例 3 輸入 2,2,3,1 輸出 1 解釋 ...