Java 返回两个不同数组中的两个元素相差2或更少但不相等的次数计数
当我练习编写bat的Java问题时,我遇到了以下问题陈述 问题:- 给定两个长度相同的数组nums1和nums2,用于 NUMS1,考虑NUMTS2中的相应元素(相同) 索引)。返回两个元素被删除的次数的计数 相差2或更小,但不相等 例如:-Java 返回两个不同数组中的两个元素相差2或更少但不相等的次数计数,java,arrays,if-statement,operators,Java,Arrays,If Statement,Operators,当我练习编写bat的Java问题时,我遇到了以下问题陈述 问题:- 给定两个长度相同的数组nums1和nums2,用于 NUMS1,考虑NUMTS2中的相应元素(相同) 索引)。返回两个元素被删除的次数的计数 相差2或更小,但不相等 例如:- matchUp([1, 2, 3], [2, 3, 10]) → 2 matchUp([1, 2, 3], [2, 3, 5]) → 3 matchUp([1, 2, 3], [2, 3, 3]) → 2 我的解决方案:- public int matc
matchUp([1, 2, 3], [2, 3, 10]) → 2
matchUp([1, 2, 3], [2, 3, 5]) → 3
matchUp([1, 2, 3], [2, 3, 3]) → 2
我的解决方案:-
public int matchUp(int[] nums1, int[] nums2) {
int count=0;
for(int i=0;i<=nums1.length-1;i++){
if((nums1[i]-nums2[i]==1)||(nums1[i]-nums2[i]==2)||(nums2[i]-nums1[i]==1)||(nums2[i]-nums1[i]==2))
count++;
}
return count;
}
public int匹配(int[]nums1,int[]nums2){
整数计数=0;
对于(int i=0;i使用Math.abs
在比较时获得差异
您可以使用流API
return IntStream.range(0, nums1.length).map(i -> Math.abs(nums1[i]-nums2[i]))
.filter(i -> i==2 ||i ==1).count();
不使用API,只是@Eklavya给出的惊人答案的补充
public static int matchUp(int a[], int b[]){
int count = 0;
for(int i=0;i<a.length;i++){
int diff = Math.abs(a[i]-b[i]);
if(diff>0 && diff<=2)
count++;
}
return count;
}
公共静态int匹配(int a[],int b[]{
整数计数=0;
对于(int i=0;i0&&diff)