精華區beta Marginalman 關於我們 聯絡資訊
※ 引述《yam276 (史萊哲林的優等生)》之銘言: : 3392. Count Subarrays of Length Three With a Condition : https://leetcode.com/problems/count-subarrays-of-length-three-with-a-condition/ : 簡單來說 任意三個數的子陣列切片 : 中間的數 要是兩邊相加除二 : 思考: : Sliding Windows : 而且 Rust 居然有內建 .widnows() 函數 : 沒內建的語言用 : for i in 0..nums.len()-2 { : let a = nums[i]; : let b = nums[i+1]; : let c = nums[i+2]; : // ... : } : Code: : impl Solution { : pub fn count_subarrays(nums: Vec<i32>) -> i32 { : nums.windows(3) : .filter(|w| w[1] % 2 == 0 && w[1] / 2 == w[0] + w[2]) : .count() as i32 : } : } 思路: 照題目敘述做題 一路滑到底就是答案 Python Code: class Solution: def countSubarrays(self, nums: List[int]) -> int: result = 0 for i in range(len(nums)-2): if nums[i] + nums[i+2] == nums[i+1] / 2: result += 1 return result -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.160.111 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1745750668.A.79B.html
yam276: 不用考慮中間數是偶數嗎 04/27 18:50
sustainer123: 奇數除出來就浮點數 一定不等於所以沒差ㄅ 04/27 18:53
yam276: 哀 只有PY可以這樣玩了 04/27 18:54
yam276: 恨動態語言 04/27 18:54
sustainer123: py就是這點方便 04/27 18:55
sustainer123: 不過工作沒寫好就會噴怪東西 哀 04/27 18:55