Skip to content

Commit ffa1ff1

Browse files
solves #2259: Remove Digit From Number to Maximize Result
in java
1 parent 18b6658 commit ffa1ff1

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -732,7 +732,7 @@
732732
| 2243 | [Calculate Digit Sum of a String](https://leetcode.com/problems/calculate-digit-sum-of-a-string) | [![Java](assets/java.png)](src/CalculateDigitSumOfAString.java) | |
733733
| 2248 | [Intersection of Multiple Arrays](https://leetcode.com/problems/intersection-of-multiple-arrays) | [![Java](assets/java.png)](src/IntersectionOfMultipleArrays.java) | |
734734
| 2255 | [Count Prefixes of a Given String](https://leetcode.com/problems/count-prefixes-of-a-given-string) | [![Java](assets/java.png)](src/CountPrefixesOfAGivenString.java) | |
735-
| 2259 | [Remove Digit From Number to Maximize Result](https://leetcode.com/problems/remove-digit-from-number-to-maximize-result) | | |
735+
| 2259 | [Remove Digit From Number to Maximize Result](https://leetcode.com/problems/remove-digit-from-number-to-maximize-result) | [![Java](assets/java.png)](src/RemoveDigitFromNumberToMaximizeResult.java) | |
736736
| 2264 | [Largest 3-Same-Digit Number in String](https://leetcode.com/problems/largest-3-same-digit-number-in-string) | | |
737737
| 2269 | [Find the K-Beauty of a Number](https://leetcode.com/problems/find-the-k-beauty-of-a-number) | | |
738738
| 2273 | [Find Resultant Array After Removing Anagrams](https://leetcode.com/problems/find-resultant-array-after-removing-anagrams) | | |
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// https://leetcode.com/problems/remove-digit-from-number-to-maximize-result
2+
// T: O(|number|)
3+
// S: O(|number|)
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
public class RemoveDigitFromNumberToMaximizeResult {
9+
public String removeDigit(String number, char digit) {
10+
final List<Integer> digitIndices = getIndices(number, digit);
11+
for (int index : digitIndices) {
12+
if (index + 1 < number.length() && number.charAt(index) < number.charAt(index + 1)) {
13+
return number.substring(0, index) + number.substring(index + 1);
14+
}
15+
}
16+
int lastIndex = digitIndices.get(digitIndices.size() - 1);
17+
return number.substring(0, lastIndex) + number.substring(lastIndex + 1);
18+
}
19+
20+
private List<Integer> getIndices(String number, char digit) {
21+
final List<Integer> result = new ArrayList<>();
22+
for (int index = 0 ; index < number.length() ; index++) {
23+
if (number.charAt(index) == digit) {
24+
result.add(index);
25+
}
26+
}
27+
return result;
28+
}
29+
}

0 commit comments

Comments
 (0)