Re: [閒聊] 每日leetcode
https://leetcode.com/problems/zero-array-transformation-i
3355. Zero Array Transformation I
給你兩個陣列nums和queries[i] = [li, ri],你可以做多次查詢,每次查詢可以對
li~ri之間的任意元素-1,求出查詢完後是否可以讓nums所有元素為0,是的話返回true。
要區間操作可以用差份數組,先用差分數組求出查完所有之後,每個位置可以減幾次,
然後把差份數組還原判斷當前的次數是否夠把nums[i]扣成一。
一開始看錯題目以為減一是對subarray結果是subset那就簡單惹==
Java Code:
------------------------------------
class Solution {
public boolean isZeroArray(int[] nums, int[][] queries) {
int n = nums.length;
int[] diff = new int[n];
for (int[] query : queries) {
int from = query[0], to = query[1];
diff[from]++;
if (to + 1 < n) {
diff[to + 1]--;
}
}
int sum = 0;
for (int i = 0; i < n; i++) {
sum += diff[i];
if (nums[i] > sum) {
return false;
}
}
return true;
}
}
------------------------------------
--
https://i.imgur.com/5xKbxoh.jpeg

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.159.104.111 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1747749549.A.133.html
討論串 (同標題文章)
完整討論串 (本文為第 1431 之 1548 篇):