给定正整数数组。我们需要找到索引(i,j,k)的三倍数(i 在此问题中出现以下情况。 我们首先以递增顺序对数组进行排序。然后从开始计算第3元素的3元素的频率。让频率为“计数”。出现以下情况。 输出: Examples:
Input : 5
1 3 2 3 4
Output : 2
The triplets are (1, 3, 2)
and (1, 2, 3)
Input : 5
2 2 2 2 2
Output : 5
In this example we choose three 2s
out of five, and the number of ways
to choose them is 5C3.
Input : 6
1 3 3 1 3 2
Output : 1
There is only one way (1, 1, 2).
C++
// CPP program to count number of ways we can
// form triplets with minimum product.
#include
Java
// Java program to count number of ways we can
// form triplets with minimum product.
import java.util.Arrays;
class GFG {
// function to calculate number of triples
static long noOfTriples(long arr[], int n)
{
// Sort the array
Arrays.sort(arr);
// Count occurrences of third element
long count = 0;
for (int i = 0; i < n; i++)
if (arr[i] == arr[2])
count++;
// If all three elements are same (minimum
// element appears at least 3 times). Answer
// is nC3.
if (arr[0] == arr[2])
return (count - 2) * (count - 1) *
(count) / 6;
// If minimum element appears once.
// Answer is nC2.
else if (arr[1] == arr[2])
return (count - 1) * (count) / 2;
// Minimum two elements are distinct.
// Answer is nC1.
return count;
}
//driver code
public static void main(String arg[])
{
long arr[] = { 1, 3, 3, 4 };
int n = arr.length;
System.out.print(noOfTriples(arr, n));
}
}
// This code is contributed by Anant Agarwal.
Python3
# Python3 program to count number
# of ways we can form triplets
# with minimum product.
# function to calculate number of triples
def noOfTriples (arr, n):
# Sort the array
arr.sort()
# Count occurrences of third element
count = 0
for i in range(n):
if arr[i] == arr[2]:
count+=1
# If all three elements are same
# (minimum element appears at l
# east 3 times). Answer is nC3.
if arr[0] == arr[2]:
return (count - 2) * (count - 1) * (count) / 6
# If minimum element appears once.
# Answer is nC2.
elif arr[1] == arr[2]:
return (count - 1) * (count) / 2
# Minimum two elements are distinct.
# Answer is nC1.
return count
# Driver code
arr = [1, 3, 3, 4]
n = len(arr)
print (noOfTriples(arr, n))
# This code is contributed by "Abhishek Sharma 44"
C#
// C# program to count number of ways
// we can form triplets with minimum product.
using System;
class GFG {
// function to calculate number of triples
static long noOfTriples(long []arr, int n)
{
// Sort the array
Array.Sort(arr);
// Count occurrences of third element
long count = 0;
for (int i = 0; i < n; i++)
if (arr[i] == arr[2])
count++;
// If all three elements are same (minimum
// element appears at least 3 times). Answer
// is nC3.
if (arr[0] == arr[2])
return (count - 2) * (count - 1) * (count) / 6;
// If minimum element appears once.
// Answer is nC2.
else if (arr[1] == arr[2])
return (count - 1) * (count) / 2;
// Minimum two elements are distinct.
// Answer is nC1.
return count;
}
//driver code
public static void Main()
{
long []arr = { 1, 3, 3, 4 };
int n = arr.Length;
Console.Write(noOfTriples(arr, n));
}
}
//This code is contributed by Anant Agarwal.
PHP
Javascript
1