class Solution {
public:
int sumOfEncryptedInt(vector<int>& nums) {
}
};
100262. 求出加密整数的和
给你一个整数数组 nums
,数组中的元素都是 正 整数。定义一个加密函数 encrypt
,encrypt(x)
将一个整数 x
中 每一个 数位都用 x
中的 最大 数位替换。比方说 encrypt(523) = 555
且 encrypt(213) = 333
。
请你返回数组中所有元素加密后的 和 。
示例 1:
输入:nums = [1,2,3]
输出:6
解释:加密后的元素位 [1,2,3]
。加密元素的和为 1 + 2 + 3 == 6
。
示例 2:
输入:nums = [10,21,31]
输出:66
解释:加密后的元素为 [11,22,33]
。加密元素的和为 11 + 22 + 33 == 66
。
提示:
1 <= nums.length <= 50
1 <= nums[i] <= 1000
原站题解
java 解法, 执行用时: 1 ms, 内存消耗: 41.8 MB, 提交时间: 2024-03-18 10:34:52
class Solution { public int sumOfEncryptedInt(int[] nums) { int ans = 0; for (int x : nums) { int mx = 0; int base = 0; for (; x > 0; x /= 10) { mx = Math.max(mx, x % 10); base = base * 10 + 1; } ans += mx * base; } return ans; } }
php 解法, 执行用时: 23 ms, 内存消耗: 20 MB, 提交时间: 2024-03-18 10:34:36
class Solution { /** * @param Integer[] $nums * @return Integer */ function sumOfEncryptedInt($nums) { $ans = 0; foreach ( $nums as $num ) { $mx = 0; $base = 0; while ( $num > 0 ) { $mx = max($mx, $num % 10); $base = $base * 10 + 1; $num = intval($num / 10); } $ans += $base * $mx; } return $ans; } }
golang 解法, 执行用时: 0 ms, 内存消耗: 2.6 MB, 提交时间: 2024-03-18 10:28:28
func sumOfEncryptedInt(nums []int) (ans int) { for _, x := range nums { mx, base := 0, 0 for ; x > 0; x /= 10 { mx = max(mx, x%10) base = base*10 + 1 } ans += mx * base } return }
python3 解法, 执行用时: 46 ms, 内存消耗: 16.4 MB, 提交时间: 2024-03-18 10:25:56
class Solution: def sumOfEncryptedInt(self, nums: List[int]) -> int: ans = 0 for x in nums: mx = base = 0 while x: x, d = divmod(x, 10) mx = max(mx, d) base = base * 10 + 1 ans += mx * base return ans
python3 解法, 执行用时: 45 ms, 内存消耗: 16.4 MB, 提交时间: 2024-03-18 10:24:24
class Solution: def sumOfEncryptedInt(self, nums: List[int]) -> int: nums = [self.encrypt(x) for x in nums] return sum(nums) def encrypt(self, x: int) -> int: return int(max([t for t in str(x)]) * len(str(x)))