Skip to content

E3550.数位和等于下标的最小下标

https://leetcode.cn/problems/smallest-index-with-digit-sum-equal-to-index/

给你一个整数数组 nums

返回满足 nums[i] 的数位和(每一位数字相加求和)等于 i最小 下标 i

如果不存在满足要求的下标,返回 -1

示例 1:

输入:nums = [1,3,2]

输出:2

解释:

  • nums[2] = 2,其数位和等于 2 ,与其下标 i = 2 相等。因此,输出为 2 。

示例 2:

输入:nums = [1,10,11]

输出:1

解释:

  • nums[1] = 10,其数位和等于 1 + 0 = 1,与其下标 i = 1 相等。
  • nums[2] = 11,其数位和等于是 1 + 1 = 2,与其下标 i = 2 相等。
  • 由于下标 1 是满足要求的最小下标,输出为 1 。

示例 3:

输入:nums = [1,2,3]

输出:-1

解释:

  • 由于不存在满足要求的下标,输出为 -1 。

提示:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 1000
python
from typing import List

class Solution:
    def smallestIndex(self, nums: List[int]) -> int:
        res = -1
        for i in range(len(nums)):
            tot = 0
            while nums[i] > 0:
                tot += nums[i] % 10
                nums[i] //= 10

            if tot == i:
                res = i
                break

        return res

if __name__ == "__main__":
    sol = Solution()
    print(sol.smallestIndex([1, 3, 2])) # Expected output: -1