算法--2023.1.13
1.力扣88--合并两个有序数组
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int cur = m+n-1;
int p = m-1,q = n-1;
while(p>=0&&q>=0){
if(nums1[p]>nums2[q]){
nums1[cur--] = nums1[p--];
}else{
nums1[cur--] = nums2[q--];
}
}
while(p>=0){
nums1[cur--] = nums1[p--];
}
while(q>=0){
nums1[cur--] = nums2[q--];
}
}
}
2.力扣2287--重排字符串形成目标字符串
class Solution {
public int rearrangeCharacters(String s, String target) {
HashMap<Character,Integer> map1 = new HashMap<>();
HashMap<Character,Integer> map2 = new HashMap<>();
int m = s.length(), n = target.length();
for(int i = 0; i < n; i++){
map1.put(target.charAt(i),map1.getOrDefault(target.charAt(i),0)+1);
}
for(int i = 0; i<m; i++){
map2.put(s.charAt(i),map2.getOrDefault(s.charAt(i),0)+1);
}
int res = 100;
for(Character t : map1.keySet()){
if(map2.containsKey(t)){
int a = map2.get(t), b = map1.get(t);
res = Math.min(res,a/b);
}else{
return 0;
}
}
return res;
}
}
理想主义的花终将在现实中绽放

浙公网安备 33010602011771号