comments | difficulty | edit_url | rating | source | tags | |
---|---|---|---|---|---|---|
true |
简单 |
1167 |
第 265 场周赛 Q1 |
|
给你一个下标从 0 开始的整数数组 nums
,返回 nums
中满足 i mod 10 == nums[i]
的最小下标 i
;如果不存在这样的下标,返回 -1
。
x mod y
表示 x
除以 y
的 余数 。
示例 1:
输入:nums = [0,1,2] 输出:0 解释: 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 mod 10 == nums[i] ,所以返回最小下标 0
示例 2:
输入:nums = [4,3,2,1] 输出:2 解释: 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 唯一一个满足 i mod 10 == nums[i] 的下标
示例 3:
输入:nums = [1,2,3,4,5,6,7,8,9,0] 输出:-1 解释:不存在满足 i mod 10 == nums[i] 的下标
示例 4:
输入:nums = [2,1,3,5,2] 输出:1 解释:1 是唯一一个满足 i mod 10 == nums[i] 的下标
提示:
1 <= nums.length <= 100
0 <= nums[i] <= 9
我们直接遍历数组,对于每个下标
如果遍历完数组都没有找到满足条件的下标,则返回
时间复杂度
class Solution:
def smallestEqual(self, nums: List[int]) -> int:
for i, x in enumerate(nums):
if i % 10 == x:
return i
return -1
class Solution {
public int smallestEqual(int[] nums) {
for (int i = 0; i < nums.length; ++i) {
if (i % 10 == nums[i]) {
return i;
}
}
return -1;
}
}
class Solution {
public:
int smallestEqual(vector<int>& nums) {
for (int i = 0; i < nums.size(); ++i) {
if (i % 10 == nums[i]) {
return i;
}
}
return -1;
}
};
func smallestEqual(nums []int) int {
for i, x := range nums {
if i%10 == x {
return i
}
}
return -1
}
function smallestEqual(nums: number[]): number {
for (let i = 0; i < nums.length; ++i) {
if (i % 10 === nums[i]) {
return i;
}
}
return -1;
}
impl Solution {
pub fn smallest_equal(nums: Vec<i32>) -> i32 {
for (i, &x) in nums.iter().enumerate() {
if i % 10 == x as usize {
return i as i32;
}
}
-1
}
}
class Solution {
func smallestEqual(nums: Array<Int64>): Int64 {
for (i in 0..nums.size) {
if (i % 10 == nums[i]) {
return i
}
}
-1
}
}