精華區beta Marginalman 關於我們 聯絡資訊
Weekly Contest 434 Q1 不會 Q2 3433. Count Mentions Per User 思路: 把event按照timestamp的順序排列,如果timestamp相同OFFLINE要先處理 用onlineTimeOfUser來記錄每個user要過哪個時間後才會上線 接著就照每個event去處理並且記錄每個user被提到幾次 Q3 3434. Maximum Frequency After Subarray Operation 先簡化問題 如果我們想知道把nums中某個subarray的a變k後,可以得到最多幾個k? 對於上面的問題 首先計算nums裡k出現的次數 : k_cnt 用一個delta來記錄a跟k出現次數的差值 當出現a : delta + 1 、 出現k : delta - 1 min_delta : 紀錄最小的delta值 max_delta : 記錄某個區間內最大的delta值 max_delta = max(delta - min_delta, maxdelta) 然後答案就會是 k_cnt + max_delta 接著把a從1~50都做一遍,最大的那個就是答案 golang code : func maxFrequency(nums []int, k int) int { k_cnt, ans := 0, 0 for _, val := range nums { if val == k { k_cnt++ } } ans = k_cnt for i := 0; i < 51; i++ { if i != k { delta, min_delta, max_delta := 0, 0, 0 for _, val := range nums { if val == k { delta-- } if val == i { delta++ } max_delta = max(delta-min_delta, max_delta) min_delta = min(delta, min_delta) } ans = max(ans, max_delta+k_cnt) } } return ans } -- https://i.imgur.com/r9FBAGO.gif -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.83.38.32 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1738058708.A.15A.html
oin1104: 大過年的怎麼沒有扣分 紅的喜氣 01/28 18:10