Merge pull request #1270 from 162-jld/master

Update 0383.赎金信.md  Java解法,代码更简洁
This commit is contained in:
程序员Carl
2022-05-18 09:28:28 +08:00
committed by GitHub
2 changed files with 16 additions and 14 deletions

View File

@ -254,7 +254,7 @@
33. [二叉树:构造一棵搜索树](./problems/0108.将有序数组转换为二叉搜索树.md) 33. [二叉树:构造一棵搜索树](./problems/0108.将有序数组转换为二叉搜索树.md)
34. [二叉树:搜索树转成累加树](./problems/0538.把二叉搜索树转换为累加树.md) 34. [二叉树:搜索树转成累加树](./problems/0538.把二叉搜索树转换为累加树.md)
35. [二叉树:总结篇!(需要掌握的二叉树技能都在这里了)](./problems/二叉树总结篇.md) 35. [二叉树:总结篇!(需要掌握的二叉树技能都在这里了)](./problems/二叉树总结篇.md)
## 回溯算法 ## 回溯算法
题目分类大纲如下: 题目分类大纲如下:

View File

@ -114,23 +114,25 @@ Java
```Java ```Java
class Solution { class Solution {
public boolean canConstruct(String ransomNote, String magazine) { public boolean canConstruct(String ransomNote, String magazine) {
//记录杂志字符串出现的次数 // 定义一个哈希映射数组
int[] arr = new int[26]; int[] record = new int[26];
int temp;
for (int i = 0; i < magazine.length(); i++) { // 遍历
temp = magazine.charAt(i) - 'a'; for(char c : magazine.toCharArray()){
arr[temp]++; record[c - 'a'] += 1;
} }
for (int i = 0; i < ransomNote.length(); i++) {
temp = ransomNote.charAt(i) - 'a'; for(char c : ransomNote.toCharArray()){
//对于金信中的每一个字符都在数组中查找 record[c - 'a'] -= 1;
//找到相应位减一否则找不到返回false }
if (arr[temp] > 0) {
arr[temp]--; // 如果数组中存在负数说明ransomNote字符串总存在magazine中没有的字符
} else { for(int i : record){
if(i < 0){
return false; return false;
} }
} }
return true; return true;
} }
} }