class Solution {
public:
int countDistinctIntegers(vector<int>& nums) {
}
};
6205. 反转之后不同整数的数目
给你一个由 正 整数组成的数组 nums
。
你必须取出数组中的每个整数,反转其中每个数位,并将反转后得到的数字添加到数组的末尾。这一操作只针对 nums
中原有的整数执行。
返回结果数组中 不同 整数的数目。
示例 1:
输入:nums = [1,13,10,12,31] 输出:6 解释:反转每个数字后,结果数组是 [1,13,10,12,31,1,31,1,21,13] 。 反转后得到的数字添加到数组的末尾并按斜体加粗表示。注意对于整数 10 ,反转之后会变成 01 ,即 1 。 数组中不同整数的数目为 6(数字 1、10、12、13、21 和 31)。
示例 2:
输入:nums = [2,2,2] 输出:1 解释:反转每个数字后,结果数组是 [2,2,2,2,2,2] 。 数组中不同整数的数目为 1(数字 2)。
提示:
1 <= nums.length <= 105
1 <= nums[i] <= 106
原站题解
python3 解法, 执行用时: 452 ms, 内存消耗: 39.3 MB, 提交时间: 2022-11-09 14:51:07
class Solution: def countDistinctIntegers(self, nums: List[int]) -> int: s = set() for x in nums: s.add(x) rev = 0 while x: rev = rev * 10 + x % 10 x //= 10 s.add(rev) return len(s)
python3 解法, 执行用时: 248 ms, 内存消耗: 47.4 MB, 提交时间: 2022-11-09 14:50:26
class Solution: def countDistinctIntegers(self, nums: List[int]) -> int: return len(set(nums) | set(int(str(x)[::-1]) for x in nums))
python3 解法, 执行用时: 396 ms, 内存消耗: 44 MB, 提交时间: 2022-11-09 14:49:45
class Solution: def countDistinctIntegers(self, nums: List[int]) -> int: m = defaultdict(int) for num in nums: m[num] += 1 rev, x = 0, num while x: rev = rev * 10 + x % 10 x //= 10 m[rev] += 1 return len(m.keys())