refactor: remove Java code sections from all LeetCode Hot 100 markdown files
- Remove all "## Java 解法" sections and Java code blocks - Replace "## Go 解法" with "## 解法" - Remove "### Go 代码要点" and "### Java 代码要点" sections - Keep all Go code sections intact - Maintain complete documentation structure and content - Update 22 markdown files in the LeetCode Hot 100 directory
This commit is contained in:
@@ -153,84 +153,6 @@ func main() {
|
||||
|
||||
### Java 实现(回溯法)
|
||||
|
||||
```java
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class LetterCombinations {
|
||||
|
||||
public List<String> letterCombinations(String digits) {
|
||||
List<String> result = new ArrayList<>();
|
||||
if (digits == null || digits.length() == 0) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// 数字到字母的映射
|
||||
String[] phoneMap = {
|
||||
"", // 0
|
||||
"", // 1
|
||||
"abc", // 2
|
||||
"def", // 3
|
||||
"ghi", // 4
|
||||
"jkl", // 5
|
||||
"mno", // 6
|
||||
"pqrs", // 7
|
||||
"tuv", // 8
|
||||
"wxyz" // 9
|
||||
};
|
||||
|
||||
StringBuilder current = new StringBuilder();
|
||||
backtrack(digits, 0, phoneMap, current, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void backtrack(String digits, int index, String[] phoneMap,
|
||||
StringBuilder current, List<String> result) {
|
||||
if (index == digits.length()) {
|
||||
result.add(current.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取当前数字对应的所有字母
|
||||
int digit = digits.charAt(index) - '0';
|
||||
String letters = phoneMap[digit];
|
||||
|
||||
for (int i = 0; i < letters.length(); i++) {
|
||||
// 选择当前字母
|
||||
current.append(letters.charAt(i));
|
||||
// 递归处理下一个数字
|
||||
backtrack(digits, index + 1, phoneMap, current, result);
|
||||
// 撤销选择(回溯)
|
||||
current.deleteCharAt(current.length() - 1);
|
||||
}
|
||||
}
|
||||
|
||||
// 测试用例
|
||||
public static void main(String[] args) {
|
||||
LetterCombinations solution = new LetterCombinations();
|
||||
|
||||
// 测试用例1
|
||||
String digits1 = "23";
|
||||
System.out.println("输入: " + digits1);
|
||||
System.out.println("输出: " + solution.letterCombinations(digits1));
|
||||
|
||||
// 测试用例2
|
||||
String digits2 = "";
|
||||
System.out.println("\n输入: " + digits2);
|
||||
System.out.println("输出: " + solution.letterCombinations(digits2));
|
||||
|
||||
// 测试用例3
|
||||
String digits3 = "2";
|
||||
System.out.println("\n输入: " + digits3);
|
||||
System.out.println("输出: " + solution.letterCombinations(digits3));
|
||||
|
||||
// 测试用例4: 最长输入
|
||||
String digits4 = "9999";
|
||||
System.out.println("\n输入: " + digits4);
|
||||
System.out.println("输出长度: " + solution.letterCombinations(digits4).size());
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Go 实现(队列迭代法)
|
||||
|
||||
@@ -275,39 +197,6 @@ func letterCombinationsIterative(digits string) []string {
|
||||
|
||||
### Java 实现(队列迭代法)
|
||||
|
||||
```java
|
||||
public List<String> letterCombinationsIterative(String digits) {
|
||||
List<String> result = new ArrayList<>();
|
||||
if (digits == null || digits.length() == 0) {
|
||||
return result;
|
||||
}
|
||||
|
||||
String[] phoneMap = {
|
||||
"", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"
|
||||
};
|
||||
|
||||
// 初始化队列
|
||||
List<String> queue = new ArrayList<>();
|
||||
queue.add("");
|
||||
|
||||
for (int i = 0; i < digits.length(); i++) {
|
||||
int digit = digits.charAt(i) - '0';
|
||||
String letters = phoneMap[digit];
|
||||
List<String> newQueue = new ArrayList<>();
|
||||
|
||||
// 取出队列中所有组合,与当前字母组合
|
||||
for (String combination : queue) {
|
||||
for (int j = 0; j < letters.length(); j++) {
|
||||
newQueue.add(combination + letters.charAt(j));
|
||||
}
|
||||
}
|
||||
|
||||
queue = newQueue;
|
||||
}
|
||||
|
||||
return queue;
|
||||
}
|
||||
```
|
||||
|
||||
## 复杂度分析
|
||||
|
||||
|
||||
Reference in New Issue
Block a user