復(fù)盤|第316場周賽
6214. 判斷兩個事件是否存在沖突
【模擬】無序?qū)⒆址D(zhuǎn)換為時間,直接比較字符串即可。
6224. 最大公因數(shù)等于 K 的子數(shù)組數(shù)目
【枚舉】數(shù)據(jù)范圍小直接暴力,加一點(diǎn)優(yōu)化,如果nums[i]不是k的倍數(shù)就continue。
【優(yōu)化枚舉】去掉大量重復(fù)的GCD,需要記錄gcd和范圍右端點(diǎn),需用到原地去重的操作。
6216. 使數(shù)組相等的最小開銷
【枚舉】nums和cost綁在一起排序,從小到大枚舉nums[i],讓所有數(shù)字都等于nums[i]。從nums[1]和nums[0]開始,total_cost增加(nums[1] - nums[0]) * cost[0]。 total_cost減少(sm_cost - cost[0]) * (nums[1] - nums[0])??偣矞p少(sm_cost - 2 * cost[0]) * (nums[1] - nums[0])
【中位數(shù)貪心】把cost[i]看作nums[i]的出現(xiàn)次數(shù)??梢宰C明把所有數(shù)變成中位數(shù)是最優(yōu)解,排序之后不斷累加cost[i],首次累加到≥?sumCost/2?就找到了中位數(shù)。
6217. 使數(shù)組相似的最少操作次數(shù)
【貪心】+-2無法改變奇偶,所以奇偶排序分組后,對應(yīng)計(jì)算每個部分的正數(shù)和,//2就是答案。用排序區(qū)分奇偶。
由于元素都是正數(shù),也可以把奇數(shù)編程相反數(shù),排序后奇偶自動分開。