Выведите двухмерные координаты точек в возрастающем порядке с указанием их частот.
Учитывая два массива x [] и y [], где x [i] представляет координату x, а y [i] представляет соответствующую координату y двумерной точки, задача состоит в том, чтобы напечатать точки координат в порядке возрастания, а затем их частоты.
Примеры:
Input: x[] = {1, 2, 1, 1, 1}, y[] = {1, 1, 3, 1, 3}
Output:
1 1 2
1 3 2
2 1 1
Input: x[] = {-1, 2, 1, -1, 2}, y[] = {-1, 1, -3, -1, 3}
Output:
-1 -1 2
1 -3 1
2 1 1
2 3 1
Approach: The idea is to use a map having key as pair (x[i], y[i]), and mapped value as integer frequency of the same point. Key-value will store the pair of coordinates and the mapped value will store their respective frequencies.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to print the coordinates along with // their frequency in ascending order void Print( int x[], int y[], int n) { // map to store the pairs // and their frequencies map<pair< int , int >, int > m; // Store the coordinates along // with their frequencies for ( int i = 0; i < n; i++) m[make_pair(x[i], y[i])]++; map<pair< int , int >, int >::iterator i; for (i = m.begin(); i != m.end(); i++) { cout << (i->first).first << " " << (i->first).second << " " << i->second << "
" ; } } // Driver code int main() { int x[] = { 1, 2, 1, 1, 1 }; int y[] = { 1, 1, 3, 1, 3 }; int n = sizeof (x) / sizeof ( int ); Print(x, y, n); return 0; } |
Python3
# Python3 implementation of the approach # Function to print the coordinates along with # their frequency in ascending order def Print (x, y, n): # map to store the pairs # and their frequencies m = dict () # Store the coordinates along # with their frequencies for i in range (n): m[(x[i], y[i])] = m.get((x[i], y[i]), 0 ) + 1 e = sorted (m) for i in e: print (i[ 0 ], i[ 1 ], m[i]) # Driver code x = [ 1 , 2 , 1 , 1 , 1 ] y = [ 1 , 1 , 3 , 1 , 3 ] n = len (x) Print (x, y, n) # This code is contributed # by mohit kumar |
C#
// C# implementation of // the above approach using System; using System.Collections.Generic; class GFG{ public class store : IComparer<KeyValuePair< int , int >> { public int Compare(KeyValuePair< int , int > x, KeyValuePair< int , int > y) { if (x.Key != y.Key) { return x.Key.CompareTo(y.Key); } else { return x.Value.CompareTo(y.Value); } } } // Function to print the // coordinates along with // their frequency in // ascending order static void Print( int []x, int []y, int n) { // Map to store the pairs // and their frequencies SortedDictionary<KeyValuePair< int , int >, int > m = new SortedDictionary<KeyValuePair< int , int >, int >( new store()); // Store the coordinates along // with their frequencies for ( int i = 0; i < n; i++) { KeyValuePair< int , int > tmp = new KeyValuePair< int , int >(x[i], y[i]); if (m.ContainsKey(tmp)) { m[tmp]++; } else { m[tmp] = 1; } } foreach (KeyValuePair<KeyValuePair< int , int >, int > i in m) { Console.Write(i.Key.Key + " " + i.Key.Value + " " + i.Value + "
" ); } } // Driver code public static void Main( string [] args) { int []x = {1, 2, 1, 1, 1}; int []y = {1, 1, 3, 1, 3}; int n = x.Length; Print(x, y, n); } } // This code is contributed by rutvik_56 |
1 1 2 1 3 2 2 1 1
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.