1、最长平衡子字符串
暴力模拟的,以每一位字符进行遍历判别,加一些特判,必须保证0在1前边,否则就重新计数
class Solution {
public int findTheLongestBalancedSubstring(String s) {
int max = 0;
int o = 0;
int I = 0;
int ot = 0;
for(int t = 0;t<s.length();t++){
if(s.charAt(t)=='0'){
ot++;
}
}
if(ot==s.length()){
return 0;
}
for(int i = 0;i<s.length();i++){
if(s.charAt(i)=='0'){
o++;
for(int j = i+1;j<s.length();j++){
if(s.charAt(j)=='0'){
o++;
}
if(s.charAt(j)=='1'&& o!=0){
I++;
}
if(s.charAt(j-1)=='1'&&s.charAt(j)=='0'){
I = 0;
o = 0;
}
if(I == o){
max = Math.max(max,I+o);
}
}
I=0;
o=0;
}
}
return max;
}
}
3、老鼠和奶酪
class Solution {
public int miceAndCheese(int[] reward1, int[] reward2, int k) {
int []Re2SubtractRe1 = new int[reward1.length];
int sum = 0;
for(int i = 0;i<reward1.length;i++){
Re2SubtractRe1[i] = reward2[i]-reward1[i];//差量
sum+=reward2[i];//假设全部2鼠鼠吃
}
Arrays.sort(Re2SubtractRe1);//最大奶酪量由1鼠2鼠组成,2鼠可能多了,也可能少了,所以应通过差量来进行补充或者减少
for(int i = 0;i<k;i++){
sum-=Re2SubtractRe1[i];
}
return sum;
}
}