列表

详情


1133. 最大唯一数

给你一个整数数组 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

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int largestUniqueNumber(vector<int>& nums) { } };

golang 解法, 执行用时: 4 ms, 内存消耗: 2.6 MB, 提交时间: 2023-10-15 15:15:25

func largestUniqueNumber(A []int) int {
    r := [1001]int{}
    for i := 0; i < len(A); i++ {
        r[A[i]]++
    }
    for i := 1000; i >= 0; i-- {
        if r[i] == 1 {
            return i
        }
    }
    return -1
}

java 解法, 执行用时: 0 ms, 内存消耗: 40.1 MB, 提交时间: 2023-10-15 15:15:12

class Solution {
    public int largestUniqueNumber(int[] A) {
        int[] r = new int[1001];
        for (int i = 0; i < A.length; i++) {
            r[A[i]]++;
        }
        for(int i = 1000; i >= 0; i--) {
            if (r[i] == 1) {
                return i;
            }
        }
        return -1;
    }
}

cpp 解法, 执行用时: 0 ms, 内存消耗: 9 MB, 提交时间: 2023-10-15 15:15:00

class Solution {
public:
    int largestUniqueNumber(vector<int>& A) {
        vector<int> r(1001);
        for (int num: A) {
            ++r[num];
        }
        for (int i = 1000; i >= 0; --i) {
            if (r[i] == 1) {
                return i;
            }
        }
        return -1;
    }
};

python3 解法, 执行用时: 44 ms, 内存消耗: 16.2 MB, 提交时间: 2023-10-15 15:14:42

class Solution:
    def largestUniqueNumber1(self, A: List[int]) -> int:
        m = collections.defaultdict(int)
        for num in A:
            m[num] += 1
        
        mx = -1
        for k, v in m.items():
            if v == 1 and k > mx:
                mx = k
        return mx

    # 计数排序
    def largestUniqueNumber(self, A: List[int]) -> int:
        r = [0] * 1001
        for num in A:
            r[num] += 1
        for i in range(1000, -1, -1):
            if r[i] == 1:
                return i
        return -1

cpp 解法, 执行用时: 8 ms, 内存消耗: 9.3 MB, 提交时间: 2023-10-15 15:13:52

class Solution {
public:
    int largestUniqueNumber(vector<int>& A) {
        unordered_map<int, int> m;
        for (int num: A) {
            ++m[num];
        }

        int mx = -1;
        for (auto& [k, v]: m) {
            if (v == 1 && k > mx) {
                mx = k;
            }
        }
        return mx;
    }
};

golang 解法, 执行用时: 4 ms, 内存消耗: 3.1 MB, 提交时间: 2023-10-15 15:13:38

func largestUniqueNumber(A []int) int {
    m := make(map[int]int)
    for i := 0; i < len(A); i++ {
        m[A[i]]++
    }
    max := -1
    for k, v := range m {
        if v == 1 && k > max {
            max = k
        }
    }
    return max
}

上一题