首页 > 其他分享 >3603、统计好三元组

3603、统计好三元组

时间:2023-02-14 14:00:37浏览次数:35  
标签:3603 count arr 示例 int 三元组 CountGoodTriplets 统计

给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。


如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。


0 <= i < j < k < arr.length

|arr[i] - arr[j]| <= a

|arr[j] - arr[k]| <= b

|arr[i] - arr[k]| <= c

其中 |x| 表示 x 的绝对值。


返回 好三元组的数量 。



示例 1:


输入:arr = [3,0,1,1,9,7], a = 7, b = 2, c = 3

输出:4

解释:一共有 4 个好三元组:[(3,0,1), (3,0,1), (3,1,1), (0,1,1)] 。

示例 2:


输入:arr = [1,1,2,2,3], a = 0, b = 0, c = 1

输出:0

解释:不存在满足所有条件的三元组。


提示:


3 <= arr.length <= 100

0 <= arr[i] <= 1000

0 <= a, b, c <= 1000


来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/count-good-triplets

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

package cn.fansunion.leecode.isNumber;

/**

* 1534. 统计好三元组 给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。

*

* 如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。

*

* 0 <= i < j < k < arr.length |arr[i] - arr[j]| <= a |arr[j] - arr[k]| <= b |arr[i] - arr[k]| <= c 其中 |x| 表示 x 的绝对值。

*

* 返回 好三元组的数量 。

*

* 来源:力扣(LeetCode) 链接:力扣 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

*

* @author [email protected]

*

* 2022-2-19

*/

public class CountGoodTriplets {

/*示例 1:



输入:arr = [3,0,1,1,9,7], a = 7, b = 2, c = 3

输出:4

解释:一共有 4 个好三元组:[(3,0,1), (3,0,1), (3,1,1), (0,1,1)] 。

示例 2:



输入:arr = [1,1,2,2,3], a = 0, b = 0, c = 1

输出:0

解释:不存在满足所有条件的三元组。





提示:



3 <= arr.length <= 100

0 <= arr[i] <= 1000

0 <= a, b, c <= 1000*/

public int countGoodTriplets(int[] arr, int a, int b, int c) {

int count = 0;

for (int i = 0; i < arr.length; i++) {

for (int j = i + 1; j < arr.length; j++) {

for (int k = j+1; k < arr.length; k++) {

boolean ijk = j > i && k > j;

boolean abc = Math.abs(arr[i] - arr[j]) <= a && Math.abs(arr[j] - arr[k]) <= b

&& Math.abs(arr[i] - arr[k]) <= c;

if (ijk && abc) {

count++;

}

}

}

}

return count;

}



//方法2 TODO

}
package test.leecode.isNumber;

import org.junit.Assert;

import org.junit.Test;

import cn.fansunion.leecode.isNumber.CountGoodTriplets;

/**

* @author [email protected]

*

* 2022-2-24

*/

public class CountGoodTripletsTest {

@Test

public void test() {

CountGoodTriplets test = new CountGoodTriplets();

int count=test.countGoodTriplets(new int[] {3,0,1,1,9,7}, 7, 2, 3);

Assert.assertEquals(4, count);

}

}

标签:3603,count,arr,示例,int,三元组,CountGoodTriplets,统计
From: https://blog.51cto.com/fansunion/6056759

相关文章