LeetCode3153. 所有数对中数位差之和
3153. 所有数对中数位差之和
你有一个数组 nums,它只包含正整数,所有正整数的数位长度都相同。
两个整数的数位差指的是两个整数相同位置上不同数字的数目。
请你返回 nums 中所有整数对里,数位差之和。
示例
示例 1:
- 输入:
nums = [13, 23, 12] - 输出:
4
解释:
计算过程如下:
- 13 和 23 的数位差为 1。
- 13 和 12 的数位差为 1。
- 23 和 12 的数位差为 2。
所以所有整数数对的数位差之和为 1 + 1 + 2 = 4。
示例 2:
- 输入:
nums = [10, 10, 10, 10] - 输出:
0
解释:
数组中所有整数都相同,所以所有整数数对的数位不同之和为 0。
提示:
2 <= nums.length <= 10^51 <= nums[i] < 10^9nums中的整数都有相同的数位长度。
暴力破解
1 | public class Solution { |
代码解释:
sumOfDigitDifferences 方法:
- 用于计算所有数对的数位差之和。
- 使用双重循环遍历
nums数组中的所有数对(i, j),其中i < j。 - 对于每一个数对,调用
calculateDigitDifference方法来计算数位差。
calculateDigitDifference 方法:
- 计算两个数字的数位差。
- 逐位比较两个数字的数位,如果它们的数位不同,差值加 1。
- 循环直到两个数字都被处理完。
注意:
时间复杂度是 $O(n^2 \times m)$,其中 (n) 是数组的长度,(m) 是数字的位数(最多 9 位)。
优化时间复杂度
1 | class Solution { |
- 标题: LeetCode3153. 所有数对中数位差之和
- 作者: moye
- 创建于 : 2024-08-30 10:50:37
- 更新于 : 2025-12-11 14:39:48
- 链接: https://www.kanes.top/2024/08/30/LeetCode3153. 所有数对中数位差之和/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论