Skip to content

Latest commit

 

History

History
110 lines (81 loc) · 2.18 KB

File metadata and controls

110 lines (81 loc) · 2.18 KB

English Version

题目描述

给你一个整数数组 A,请找出并返回在该数组中仅出现一次的最大整数。

如果不存在这个只出现一次的整数,则返回 -1。

 

示例 1:

输入:[5,7,3,9,4,9,8,3,1]
输出:8
解释: 
数组中最大的整数是 9,但它在数组中重复出现了。而第二大的整数是 8,它只出现了一次,所以答案是 8。

示例 2:

输入:[9,9,8,8]
输出:-1
解释: 
数组中不存在仅出现一次的整数。

 

提示:

  1. 1 <= A.length <= 2000
  2. 0 <= A[i] <= 1000

解法

计数器实现。

Python3

class Solution:
    def largestUniqueNumber(self, A: List[int]) -> int:
        counter = collections.Counter(A)
        for i in range(1000, -1, -1):
            if counter[i] == 1:
                return i
        return -1

Java

class Solution {
    public int largestUniqueNumber(int[] A) {
        int[] counter = new int[1001];
        for (int a : A) {
            ++counter[a];
        }
        for (int i = 1000; i >= 0; --i) {
            if (counter[i] == 1) {
                return i;
            }
        }
        return -1;
    }
}

JavaScript

/**
 * @param {number[]} A
 * @return {number}
 */
var largestUniqueNumber = function (A) {
  let counter = {};
  for (const a of A) {
    counter[a] = (counter[a] || 0) + 1;
  }
  for (let i = 1000; i >= 0; --i) {
    if (counter[i] == 1) {
      return i;
    }
  }
  return -1;
};

...