力扣算法学习day04-3
1-两树之和
题目
代码实现
class Solution {
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer> map = new HashMap<>();
for(int i = 0;i < nums.length;i++){
if(map.containsKey(target - nums[i])){
return new int[]{map.get(target - nums[i]),i};
}
map.put(nums[i],i);
}
return new int[0];
}
}
454-四数相加
题目
代码实现
class Solution {
public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
HashMap<Integer,Integer> mapA = new HashMap<>();
for(int i = 0;i < nums1.length;i++){
for(int j = 0;j < nums1.length;j++){
Integer temp = mapA.get(nums1[i] + nums2[j]);
mapA.put(nums1[i] + nums2[j],temp == null ? 1 : temp + 1);
}
}
int number = 0;
for(int i = 0;i < nums1.length;i++){
for(int j = 0;j < nums1.length;j++){
int temp = nums3[i] + nums4[j];
if(mapA.containsKey(0 - temp)){
number += mapA.get(0 - temp);
}
}
}
return number;
}
}
383-赎金信
题目
代码实现
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
int[] cout = new int[26];
char[] a = ransomNote.toCharArray();
char[] b = magazine.toCharArray();
for(int i = 0;i < b.length;i++){
cout[b[i] - 'a']++;
}
for(int i = 0;i < a.length;i++){
if(cout[a[i] - 'a'] <= 0){
return false;
}
cout[a[i] - 'a']--;
}
return true;
}
}
|