力扣周赛241

This commit is contained in:
huangge1199@hotmail.com 2021-05-16 15:48:44 +08:00
parent 92d659f115
commit c4319f8cf5
2 changed files with 112 additions and 0 deletions

View File

@ -0,0 +1,38 @@
package com.code.leet.week;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author: 轩辕龙儿
* @Date: 2021/5/16 11:03
* @Description:
*/
class FindSumPairs {
int[] nums1;
int[] nums2;
Map<Integer, Integer> map = new HashMap<>();
public FindSumPairs(int[] nums1, int[] nums2) {
this.nums1 = nums1;
this.nums2 = nums2;
for (int i = 0; i < nums2.length; i++) {
map.put(nums2[i], map.getOrDefault(nums2[i], 0) + 1);
}
}
public void add(int index, int val) {
map.put(nums2[index], map.getOrDefault(nums2[index], 0) - 1);
map.put(nums2[index] + val, map.getOrDefault(nums2[index] + val, 0) + 1);
nums2[index] += val;
}
public int count(int tot) {
int count = 0;
for (int i = 0; i < nums1.length; i++) {
count += map.getOrDefault(tot - nums1[i], 0);
}
return count;
}
}

View File

@ -0,0 +1,74 @@
package com.code.leet.week;
import java.util.ArrayList;
import java.util.List;
/**
* @Author: 轩辕龙儿
* @Date: 2021/5/16 10:30
* @Description:
*/
public class Solution241 {
public static void main(String[] args) {
// Solution241 solution = new Solution241();
// System.out.println(solution.minSwaps("1110"));
// FindSumPairs findSumPairs = new FindSumPairs(new int[]{1, 1, 2, 2, 2, 3},new int[]{1, 4, 5, 2, 5, 4});
// System.out.println(findSumPairs.count(7));
// findSumPairs.add(3,2);
// findSumPairs.count(8);
// findSumPairs.count(4);
// findSumPairs.add(0,1);
// findSumPairs.add(1,1);
// findSumPairs.count(7);
System.out.println(1^2);
}
public int subsetXORSum(int[] nums) {
if (nums.length == 0) {
return 0;
}
return getArr(nums, 0, new ArrayList<>(), 0);
}
private int getArr(int[] nums, int index, List<Integer> xors, int result) {
if (index == nums.length) {
return result;
}
List<Integer> temp = xors;
for (int xor : temp) {
result += xor ^ nums[index];
}
result += nums[index];
xors.add(nums[index]);
return getArr(nums, index + 1, xors, result);
}
public int minSwaps(String s) {
int s0 = s.replace("0", "").length();
int s1 = s.replace("1", "").length();
if (Math.abs(s0 - s1) > 1) {
return -1;
}
int com = 0;
int m0 = 0;
for (int i = 0; i < s.length(); i++) {
if (com != s.charAt(i) - '0') {
m0++;
}
com = 1 - com;
}
m0 = m0 % 2 == 0 ? m0 : Integer.MAX_VALUE;
com = 1;
int m1 = 0;
for (int i = 0; i < s.length(); i++) {
if (com != s.charAt(i) - '0') {
m1++;
}
com = 1 - com;
}
m1 = m1 % 2 == 0 ? m1 : Integer.MAX_VALUE;
return Math.min(m0, m1) / 2;
}
}