※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1716305955.A.2C7.html
Re: [閒聊] 每日leetcode
看板 | Marginalman |
---|---|
作者 | JIWP (神楽めあ的錢包) |
時間 | 2024-05-21 23:39:10 |
留言 | 0則留言 |
: 再隨便挑一題來寫
: 3152. Special Array II
: 給你一個array 還有一堆query: q[i] = [s_i, e_i]
: 每個query要回傳arr[s_i:e_i+1]是不是"special array"
: special的定義是 每個相鄰pair不可同時為奇數或偶數
: 簡單來說就是要 奇偶相間
幹幹幹 ptt star好卡
思路:
用prefix array來記錄到目前有幾個奇偶pair
接著就去看每個query區間的奇偶pair是不是=query[i][1]-query[i][0]
golang code:
func isArraySpecial(nums []int, queries [][]int) []bool {
n := len(nums)
max := n - 1
parity := nums[n-1] & 1
nums[n-1] = max
for i := len(nums) - 2; i >= 0; i-- {
curr := nums[i] & 1
if curr == parity {
max = i
}
nums[i] = max
parity = curr
}
result := make([]bool, len(queries))
for i, q := range queries {
result[i] = nums[q[0]] >= q[1]
}
return result
}
--
https://i.imgur.com/r9FBAGO.gif
--
※ 批踢踢實業坊(ptt.cc), 來自: 223.141.98.100 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1716305955.A.2C7.html
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1716305955.A.2C7.html