雙周賽 131。根本和 Q1 沒兩樣的奇怪題目。

題目

輸入整數陣列 nums, queries 還有整數 x。

對於每個 queries[i],你必須找到 x 在 nums 中出現第 queries[i] 次的索引。若不存在則為 -1。

回傳包含查詢結果的陣列 answer。

解法

先找 x 出現的所有索引,再處理查詢。
注意查詢 q 是否超過 x 的出現次數即可。

時間複雜度 O(N + Q)。
空間複雜度 O(N),答案空間不計入。

code class Solution:
    def occurrencesOfElement(self, nums: List[int], queries: List[int], x: int) -> List[int]:
        a = [i for i, num in enumerate(nums) if num == x]
        ans = []
        
        for q in queries:
            if q <= len(a):
                ans.append(a[q - 1])
            else:
                ans.append(-1)

        return ans