Description

You are given an integer array nums containing positive integers. We define a function encrypt such that encrypt(x) replaces every digit in x with the largest digit in x. For example, encrypt(523) = 555 and encrypt(213) = 333.

Return the sum of encrypted elements.

Example 1:

Input: nums = [1,2,3]

Output: 6

Explanation: The encrypted elements are [1,2,3]. The sum of encrypted elements is 1 + 2 + 3 == 6.

Example 2:

Input: nums = [10,21,31]

Output: 66

Explanation: The encrypted elements are [11,22,33]. The sum of encrypted elements is 11 + 22 + 33 == 66.

Constraints:

  • 1 <= nums.length <= 50
  • 1 <= nums[i] <= 1000

Code

Time Complexity: , Space Complexity:

class Solution {
public:
    int sumOfEncryptedInt(vector<int>& nums) {
        int sum = 0;
        for(auto& n: nums) {
            sum += encrypt(n);
        }
        return sum;
    }
 
    int encrypt(int n) {
        int digitMax = 0;
        int digitLen = 0;
        while(n > 0) {
            digitMax = max(digitMax, n % 10);
            n /= 10;
            digitLen++;
        }
 
        int result = 0;
        while(digitLen--) {
            result = result * 10 + digitMax;
        }
        return result;
    }
};

Source