列表

详情


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)。

 

提示:

原站题解

去查看

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

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())

上一题