双周74
This commit is contained in:
parent
d64a073254
commit
320e87235f
94
src/main/java/contest/y2022/m3/dw/SolutionD74.java
Normal file
94
src/main/java/contest/y2022/m3/dw/SolutionD74.java
Normal file
@ -0,0 +1,94 @@
|
||||
package contest.y2022.m3.dw;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @description:
|
||||
* @author: Administrator
|
||||
* @date: 2022/2/19 22:28
|
||||
*/
|
||||
public class SolutionD74 {
|
||||
public static void main(String[] args) {
|
||||
SolutionD74 solutionD72 = new SolutionD74();
|
||||
System.out.println(solutionD72.minimumWhiteTiles("1110111", 2, 1));
|
||||
}
|
||||
|
||||
public boolean divideArray(int[] nums) {
|
||||
Arrays.sort(nums);
|
||||
for (int i = 0; i < nums.length; i = i + 2) {
|
||||
if (nums[i] != nums[i + 1]) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public long maximumSubsequenceCount(String text, String pattern) {
|
||||
long sum = 0;
|
||||
char ch1 = pattern.charAt(0);
|
||||
char ch2 = pattern.charAt(1);
|
||||
int num1 = 0;
|
||||
int num2 = 0;
|
||||
for (int i = 0; i < text.length(); i++) {
|
||||
if (text.charAt(i) == ch1) {
|
||||
num1++;
|
||||
} else if (text.charAt(i) == ch2) {
|
||||
sum += num1;
|
||||
num2++;
|
||||
}
|
||||
}
|
||||
return sum + Math.max(num1, num2);
|
||||
}
|
||||
|
||||
public int halveArray(int[] nums) {
|
||||
PriorityQueue<Double> queue = new PriorityQueue<>(Comparator.reverseOrder());
|
||||
double sum = 0;
|
||||
for (int j : nums) {
|
||||
queue.add((double) j);
|
||||
sum += j;
|
||||
}
|
||||
double cur = sum;
|
||||
int count = 0;
|
||||
while (cur > sum / 2) {
|
||||
double num = queue.poll();
|
||||
cur -= num / 2;
|
||||
queue.add(num / 2);
|
||||
count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
public int minimumWhiteTiles(String floor, int numCarpets, int carpetLen) {
|
||||
if (numCarpets * carpetLen >= floor.length()) {
|
||||
return 0;
|
||||
}
|
||||
if ("".equals(floor)) {
|
||||
return 0;
|
||||
}
|
||||
if (numCarpets == 0) {
|
||||
int count = 0;
|
||||
int i = floor.indexOf("1");
|
||||
while (i >= 0) {
|
||||
count++;
|
||||
if (i + 1 < floor.length()) {
|
||||
floor = floor.substring(i + 1);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
while (floor.startsWith("0")) {
|
||||
floor = floor.substring(1);
|
||||
}
|
||||
if (floor.equals("")) {
|
||||
return 0;
|
||||
}
|
||||
if (floor.length() <= carpetLen * numCarpets) {
|
||||
return 0;
|
||||
}
|
||||
int c1 = 1 + minimumWhiteTiles(floor.substring(1), numCarpets, carpetLen);
|
||||
int c2 = minimumWhiteTiles(floor.substring(carpetLen), numCarpets - 1, carpetLen);
|
||||
return Math.min(c1, c2);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user