Problem Link

Description


You are given an integer array nums.

Return the smallest index i such that the sum of the digits of nums[i] is equal to i.

If no such index exists, return -1.

Β 

Example 1:

Input: nums = [1,3,2]

Output: 2

Explanation:

  • For nums[2] = 2, the sum of digits is 2, which is equal to index i = 2. Thus, the output is 2.

Example 2:

Input: nums = [1,10,11]

Output: 1

Explanation:

  • For nums[1] = 10, the sum of digits is 1 + 0 = 1, which is equal to index i = 1.
  • For nums[2] = 11, the sum of digits is 1 + 1 = 2, which is equal to index i = 2.
  • Since index 1 is the smallest, the output is 1.

Example 3:

Input: nums = [1,2,3]

Output: -1

Explanation:

  • Since no index satisfies the condition, the output is -1.

Β 

Constraints:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 1000

Solution


Python3

class Solution:
    def smallestIndex(self, nums: List[int]) -> int:
 
        for i, x in enumerate(nums):
            curr = 0
 
            while x > 0:
                curr += x % 10
                x //= 10
 
            if curr == i:
                return i
 
        return -1