public static int thirdMax(int[] nums) {
if(nums.length == 1) {
return nums[0];
}else if(nums.length == 2) {
if(nums[0] > nums[1]) {
return nums[0];
}else {
return nums[1];
}
}else {
int arr[] = {Integer.MIN_VALUE ,Integer.MIN_VALUE ,Integer.MIN_VALUE };
boolean[] flag = new boolean[3];
int len = nums.length;
for(int i = 0; i < len; i++) {
if((flag[0] &&nums[i] == arr[0]) || (flag[1] && nums[i] == arr[1]) || (flag[2] && nums[i] == arr[2])) {
continue;
}else if((flag[0] == false) || (nums[i] > arr[0] && flag[0] == true)) {
for(int j = 2; j >=1; j--) {
arr[j] = arr[j-1];
}
arr[0] = nums[i];
if(flag[1] == true) {
flag[2] = true;
}
if(flag[0] == true) {
flag[1] =true;
}
flag[0] = true;
}else if((flag[1] == false) || (nums[i] > arr[1] && nums[i] < arr[0] && flag[1] && flag[0])) {
arr[2] = arr[1];
arr[1] = nums[i];
if(flag[1] == true) {
flag[2] = true;
}else {
flag[1] = true;
}
}else if((flag[2] == false) || (nums[i] > arr[2] && nums[i] < arr[1] && flag[0] && flag[1] && flag[2])) {
arr[2] = nums[i];
flag[2] = true;
}
}
if(flag[2] == false) {
return arr[0];
}else {
return arr[2];
}
}
}
414. Third Maximum Number
最新推荐文章于 2021-07-30 09:59:34 发布