Minimum Time to Remove All Cars Containing Illegal Goods LeetCode solution in Java

1
class Solution {
2
public int minimumTime(String s) {
3
int n = s.length();
4
int min = s.length();
5
int[] nums = new int[n];
6
for (int i = 0; i < n; i++) nums[i] = s.charAt(i) - '0';
7

8
// step1
9
int[] leftOptimized = new int[n + 2];
10
for (int i = 1; i <= n; i++) {
11
leftOptimized[i] = Math.min(i, leftOptimized[i - 1] + (nums[i - 1] == 1 ? 2 : 0));
12
}
13

14
// step2
15
int[] rightOptimized = new int[n + 2];
16
for (int i = n; i > 0; i--) {
17
rightOptimized[i] = Math.min(n - i + 1, rightOptimized[i + 1] + (nums[i - 1] == 1 ? 2 : 0));
18
}
19

20
// step3
21
for (int p = 0; p <= n; p++) {
22
min = Math.min(min, leftOptimized[p] + rightOptimized[p + 1]);
23
}
24

25
return min;
26
}
27
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0