Problem
You are given an integer array nums, an integer array queries, and an integer x.
For each queries[i], you need to find the index of the queries[i]ᵗʰ occurrence of x in the nums array. If there are fewer than queries[i] occurrences of x, the answer should be -1 for that query.
Return an integer array answer containing the answers to all queries.
https://leetcode.cn/problems/find-occurrences-of-an-element-in-an-array/
Example 1:
Input:
nums = [1,3,1,7], queries = [1,3,2,4], x = 1
Output:[0,-1,2,-1]
Explanation:
- For the 1ˢᵗ query, the first occurrence of 1 is at index 0.
- For the 2ⁿᵈ query, there are only two occurrences of 1 in
nums, so the answer is -1.- For the 3ʳᵈ query, the second occurrence of 1 is at index 2.
- For the 4ᵗʰ query, there are only two occurrences of 1 in
nums, so the answer is -1.
Example 2:
Input:
nums = [1,2,3], queries = [10], x = 5
Output:[-1]
Explanation:
- For the 1ˢᵗ query, 5 doesn’t exist in
nums, so the answer is -1.
Constraints:
1 <= nums.length, queries.length <= 10⁵1 <= queries[i] <= 10⁵1 <= nums[i], x <= 10⁴
Test Cases
1 | class Solution: |
1 | import pytest |
Thoughts
直接按题意实现即可(这不应该是 easy 么)。
在 Python 里,直接用 list comprehension 比用 list(filter(lambda ..., nums)) 快不少。
Code
1 | class Solution: |