列表

详情


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

 

提示:

原站题解

去查看

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

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

上一题