1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| class Solution { public int garbageCollection(String[] garbage, int[] travel) { int gCount = 0, gIndex = -1; int pCount = 0, pIndex = -1; int mCount = 0, mIndex = -1;
for (int i = 0; i < garbage.length; i++) { String s = garbage[i]; for (int j = 0; j < s.length(); j++) { char c = s.charAt(j); if (c == 'G') { gCount++; gIndex = i; } else if (c == 'P') { pCount++; pIndex = i; } else { mCount++; mIndex = i; } } }
int[] minutes = new int[travel.length + 1]; for (int i = 0; i < travel.length; i++) { minutes[i + 1] = minutes[i] + travel[i]; }
int ans = 0; if (gIndex != -1) { ans += minutes[gIndex] + gCount; } if (pIndex != -1) { ans += minutes[pIndex] + pCount; } if (mIndex != -1) { ans += minutes[mIndex] + mCount; } return ans; } }
|
References
2391. Minimum Amount of Time to Collect Garbage