class Solution {
public:
int largestUniqueNumber(vector<int>& nums) {
}
};
1133. 最大唯一数
给你一个整数数组 A
,请找出并返回在该数组中仅出现一次的最大整数。
如果不存在这个只出现一次的整数,则返回 -1。
示例 1:
输入:[5,7,3,9,4,9,8,3,1] 输出:8 解释: 数组中最大的整数是 9,但它在数组中重复出现了。而第二大的整数是 8,它只出现了一次,所以答案是 8。
示例 2:
输入:[9,9,8,8] 输出:-1 解释: 数组中不存在仅出现一次的整数。
提示:
1 <= A.length <= 2000
0 <= A[i] <= 1000
原站题解
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 }