Выведите двухмерные координаты точек в возрастающем порядке с указанием их частот.
Учитывая два массива 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 ordervoid 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 codeint 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 orderdef 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 codex = [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 approachusing 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 orderstatic 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 codepublic 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.