From 80ae33d3d0b99824d6afd1ce63d9746daf679aac Mon Sep 17 00:00:00 2001 From: Matej Focko <me@mfocko.xyz> Date: Mon, 14 Apr 2025 13:06:39 +0200 Subject: [PATCH] =?UTF-8?q?cs:=20add=20=C2=AB1534.=20Count=20Good=20Triple?= =?UTF-8?q?ts=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit URL: https://leetcode.com/problems/count-good-triplets/ Signed-off-by: Matej Focko <me@mfocko.xyz> --- cs/count-good-triplets.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 cs/count-good-triplets.cs diff --git a/cs/count-good-triplets.cs b/cs/count-good-triplets.cs new file mode 100644 index 0000000..10aa8f1 --- /dev/null +++ b/cs/count-good-triplets.cs @@ -0,0 +1,22 @@ +public class Solution { + private IEnumerable<(int, int, int)> Triplets(int n) => + Enumerable.Range(0, n).SelectMany( + i => Enumerable.Range(i + 1, n - i - 1).SelectMany( + j => Enumerable.Range(j + 1, n - j - 1).Select( + k => (i, j, k) + ) + ) + ); + + public int CountGoodTriplets(int[] arr, int a, int b, int c) => + Triplets(arr.Length) + .Select(idxs => { + var (i, j, k) = idxs; + return (arr[i], arr[j], arr[k]); + }) + .Where(nums => { + var (x, y, z) = nums; + return Math.Abs(x - y) <= a && Math.Abs(y - z) <= b && Math.Abs(x - z) <= c; + }) + .Count(); +}