https://leetcode.com/problems/third-maximum-number/ // 开始我以为相同的也占一位,比如5,3,3,2,得出3,但是答案是需要2 public class Solution { public int thirdMax(int[] nums) { List<Integer> lst = new ArrayList<>(); boolean equal; int tmp; for (int i=0; i<nums.length; i++) { equal = false; int j=0; for (;j<3&&j<lst.size(); j++) { tmp = lst.get(j); if (tmp == nums[i]) { equal = true; break; } else if (tmp < nums[i]) { break; } } if (!equal && j<3) lst.add(j, nums[i]); } if (lst.size() < 3) { if (lst.size() > 0) { return lst.get(0); } return 0; } return lst.get(2); } /* public int thirdMax(int[] nums) { List<Integer> lst = new ArrayList<>(); for (int i=0; i<3 && i<nums.length; i++) { int j=0; for (;j<lst.size(); j++) { if (lst.get(j) <= nums[i]) { break; } } lst.add(j, nums[i]); } if (lst.size() < 3) { if (lst.size() > 0) { return lst.get(0); } return 0; } for (int i=3; i<nums.length; i++) { int j = 0; for (; j<3; j++) { if (lst.get(j) < nums[i]) { break; } } if (j<3) { lst.add(j, nums[i]); } } return lst.get(2); } */ }