Function Description
Complete the beautifulTriplets function in the editor below. It must return an integer that represents the number of beautiful triplets in the sequence.
beautifulTriplets has the following parameters:
- d: an integer
- arr: an array of integers, sorted ascending
Input Format
The first line contains 2 space-separated integers n and d, the length of the sequence and the beautiful difference.
The second line contains n space-separated integers arr[i].
Output Format
Print a single line denoting the number of beautiful triplets in the sequence.
Sample Input
7 3 1 2 4 5 7 8 10
Sample Output
3
Beautiful Triplets HackerRank Solution in C
#include<stdio.h> int main(void){ int n,d; scanf("%d %d",&n,&d); int a[n]; for(int i=0;i<n;i++){ scanf("%d",&a[i]); } int s=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(a[j]-a[i]!=d) continue; for(int k=j+1;k<n;k++){ if(a[j]-a[i]==a[k]-a[j] && a[k]-a[j]==d)s++; } } } printf("%d",s); return 0; }
Beautiful Triplets HackerRank Solution in C++
#include <iostream> #include <cstring> #include <set> #include <map> #include <list> #include <queue> #include <stack> #include <bitset> #define _USE_MATH_DEFINES #include <math.h> #include <cstdlib> #include <ctime> #include <algorithm> #include <assert.h> using namespace std; void smain(); int main(){ #ifdef TASK freopen(TASK".in","rt",stdin); const clock_t start = clock(); #endif smain(); #ifdef TASK cerr << "\nTotal Execution Time: " << float( clock () - start ) / CLOCKS_PER_SEC << endl; #endif return 0; } #ifndef M_PI #define M_PI 3.14159265358979311599796346854418516 #endif #define forn(i,n) for (int i=0;i<n;i++) #define rforn(i,n) for (int i=n-1;i>=0;i--) #define int long long #define LL __int128 #define mp(a,b) make_pair(a,b) #define INF 2305843009213693951LL #define MOD 1000000007 #define EPS 1E-6 #define N 200001 int n, d; int a[N]; void smain() { for (; cin >> n >> d; ) { forn(i, n) cin >> a[i]; int res = 0; map<int, int> l, r; forn(i, n) r[a[i]] += 1; forn(i, n) { r[a[i]] -= 1; res += l[a[i]-d] * r[a[i]+d]; l[a[i]] += 1; } cout << res << '\n'; } }
Beautiful Triplets HackerRank Solution in Java
import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int d = sc.nextInt(); int[] a = new int[n]; HashSet<Integer> set = new HashSet<Integer>(); for (int i = 0; i < n; i++) { a[i] = sc.nextInt(); set.add(a[i]); } int ans = 0; for (int i = 0; i < n; i++) { if (set.contains(a[i]+d)&&set.contains(a[i]+2*d)) ans++; } System.out.println(ans); } }
Beautiful Triplets HackerRank Solution in Python
rr = raw_input rrM = lambda: map(int, rr().split()) N,D = rrM() A = rrM() #beau if i<j<k , ak - aj = aj - ai = d from collections import defaultdict as ddic seenL = ddic(int) seenR = ddic(int) for i in xrange(N): for j in xrange(i+1,N): if A[j]-A[i] == D: seenL[j] += 1 seenR[i] += 1 ans = 0 for i in xrange(N): ans += seenL[i] * seenR[i] print ans
Beautiful Triplets HackerRank Solution in C#
using System; using System.Collections.Generic; using System.Collections; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Numerics; public class Solution { #region Stable public delegate string ReadLine(); public delegate void WriteLine(object line); static public ReadLine read = delegate { return Console.ReadLine(); }; static public WriteLine write = (x) => Console.WriteLine(x); static public List<int> GetIntsLine() { return read().Split(' ').Select(x => int.Parse(x)).ToList(); } static public List<string> GetStringsLine() { return read().Split(' ').ToList(); } static public List<long> GetLongsLine() { return read().Split(' ').Select(x => long.Parse(x)).ToList(); } #endregion static public void Main(String[] args) { var nd = GetIntsLine(); var ns = GetIntsLine(); var n = nd[0]; var d = nd[1]; var dic = ns.Select((x,i) => Tuple.Create(x,i)).ToDictionary(x => x.Item1, x=> x); var count = 0; for (int i = 0; i < ns.Count; i++) { var number = ns[i]; Tuple<int,int> mid = null; dic.TryGetValue(number+d,out mid); if (mid==null) continue; if (mid.Item2 <= i) continue; Tuple<int, int> last = null; dic.TryGetValue(mid.Item1 + d, out last); if (last==null) continue; if (last.Item2 <= i) continue; count++; } write(count); } }
Attempt Beautiful Triplets HackerRank Challenge
Link – https://www.hackerrank.com/challenges/beautiful-triplets/
Next HackerRank Challenge Solution
Link – https://exploringbits.com/minimum-distances-hackerrank-solution/
Aayush Kumar Gupta is the founder and creator of ExploringBits, a website dedicated to providing useful content for people passionate about Engineering and Technology. Aayush has completed his Bachelor of Technology (Computer Science & Engineering) from 2018-2022. From July 2022, Aayush has been working as a full-time Devops Engineer.