牛牛有两个长度为
的数组
,牛牛希望统计有多少数对
满足:
1,
2,
import java.util.*;
public class Solution {
/**
* 计算有多少对符合条件的数对
* @param a int整型一维数组 数组a
* @param b int整型一维数组 数组b
* @return int整型
*/
public int countLR (int[] a, int[] b) {
int count = 0;
for(int i = 0;i < a.length;i++){
int less = a[i]-2*b[i];
if(less == 0){
count++;
}
for(int j = i+1;j < a.length;j++){
less += a[j]+ b[j-1]-b[j];
if(less == 0){
count++;
}
}
}
return count;
}
}
import java.util.*;
public class Solution {
/**
* 计算有多少对符合条件的数对
* @param a int整型一维数组 数组a
* @param b int整型一维数组 数组b
* @return int整型
*/
public class Solution {
/**
* 计算有多少对符合条件的数对
* @param a int整型一维数组 数组a
* @param b int整型一维数组 数组b
* @return int整型
*/
public int countLR (int[] a, int[] b) {
// write code here
if(a==null||a.length==0)
return 0;
int n = a.length;
int count = 0;
int sumA = 0;
for(int l=0;l<=n-1;l++){
sumA += a[l];
int sumB = 0;
for(int r=l;r<n;r++){
if(r!=l)
sumB += a[r];
if(sumA+sumB==(b[l]+b[r]))
count++;
}
sumA -= a[l];
}
return count;
}
}
暴力解法,符合两个条件就行
import java.util.*;
public class Solution {
/**
* 计算有多少对符合条件的数对
* @param a int整型一维数组 数组a
* @param b int整型一维数组 数组b
* @return int整型
*/
public int countLR (int[] a, int[] b) {
// write code here
int n = a.length;
int[] sum = new int[n];
sum[0] = a[0];
for(int i=1; i<n; i++){
sum[i] = sum[i-1]+a[i];
}
int count = 0;
for(int l=0; l<n; l++){
for(int r=l; r<n; r++){
if(r==l){
if(a[r] == b[r]+b[l]){
count++;
}
}else if(l<r){
if(sum[r]-sum[l]+a[l] == b[r]+b[l]){
count++;
}
}
}
}
return count;
}
}