作者DJYOSHITAKA (franchouchouISBEST)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Tue May 21 22:01:11 2024
再隨便挑一題來寫
3152. Special Array II
給你一個array 還有一堆query: q[i] = [s_i, e_i]
每個query要回傳arr[s_i:e_i+1]是不是"special array"
special的定義是 每個相鄰pair不可同時為奇數或偶數
簡單來說就是要 奇偶相間
init一個array 第i個element是 其往左找"連續奇偶相間數列"的開始點
其實就是for loop下去 遇到相鄰都是奇數or相鄰都是偶數的pair就更新start_i
如果持續奇偶相間的話就不更新start_i這樣
最後就單純一個if就有答案了
def isArraySpecial(self, nums: List[int], queries: List[List[int]]) ->
List[bool]:
mem = [-1 for _ in range(len(nums))]
start_i = 0
pre = -1
for i,k in enumerate(nums):
if k%2 == pre:
start_i = i
else:
pre = k%2
mem[i] = start_i
ans = [ mem[q[1]] <= mem[q[0]] for q in queries ]
return ans
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.137.225.89 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1716300074.A.623.html
※ 編輯: DJYOSHITAKA (114.137.225.89 臺灣), 05/21/2024 22:02:03
→ RinNoKareshi: 大師 05/21 22:03
推 orangeNoob: 大師 05/21 22:05
推 JIWP: 別卷了 05/21 22:05
→ argorok: 別捲了 05/21 22:06
推 steven183: 別卷了 05/21 22:06
→ aioiwer318: 別卷了 05/21 22:10
→ rainkaras: 大師 05/21 22:35
→ sixB: 你才是最特別的 05/21 22:59