[LeetCode]#2057. Smallest Index With Equal Value

Fatboy Slim
2 min readNov 24, 2021

Environment: Python 3.8

Key technique: for, %

Given a 0-indexed integer array nums, return the smallest index i of nums such that i mod 10 == nums[i], or -1 if such index does not exist.

x mod y denotes the remainder when x is divided by y.

Example 1:

Input: nums = [0,1,2]
Output: 0
Explanation:
i=0: 0 mod 10 = 0 == nums[0].
i=1: 1 mod 10 = 1 == nums[1].
i=2: 2 mod 10 = 2 == nums[2].
All indices have i mod 10 == nums[i], so we return the smallest index 0.

Example 2:

Input: nums = [4,3,2,1]
Output: 2
Explanation:
i=0: 0 mod 10 = 0 != nums[0].
i=1: 1 mod 10 = 1 != nums[1].
i=2: 2 mod 10 = 2 == nums[2].
i=3: 3 mod 10 = 3 != nums[3].
2 is the only index which has i mod 10 == nums[i].

Example 3:

Input: nums = [1,2,3,4,5,6,7,8,9,0]
Output: -1
Explanation: No index satisfies i mod 10 == nums[i].

Example 4:

Input: nums = [2,1,3,5,2]
Output: 1
Explanation: 1 is the only index with i mod 10 == nums[i].

Analysis:

  1. Calculate all number mod 10.
  2. Check mod 10 result is match nums[i] number or not.
  3. Return smallest one related index.
  4. If no mod 10, return -1.

Solution:

class Solution:
def smallestEqual(self, nums):
ans=[]
for i in range(len(nums)):
if i % 10 ==nums[i]:
ans.append(i)
if ans:
return min(ans)
else:
return -1

Submissions:

--

--