Skip to content

Commit 4b4bc7d

Browse files
authored
Create find-the-number-of-copy-arrays.cpp
1 parent 54d1c5e commit 4b4bc7d

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Time: O(n)
2+
// Space: O(1)
3+
4+
// greedy
5+
class Solution {
6+
public:
7+
int countArrays(vector<int>& original, vector<vector<int>>& bounds) {
8+
int left = bounds[0][0], right = bounds[0][1];
9+
int result = right - left + 1;
10+
for (int i = 1; i < size(original); ++i) {
11+
const int diff = original[i] - original[i - 1];
12+
left = max(left + diff, bounds[i][0]);
13+
right = min(right + diff, bounds[i][1]);
14+
result = min(result, max(right - left + 1, 0));
15+
}
16+
return result;
17+
}
18+
};

0 commit comments

Comments
 (0)