सापेक्ष रँक्स लीटकोड सोल्यूशन


अडचण पातळी सोपे
वारंवार विचारले Google
वर्गीकरण

संबंधित रँकची समस्या लीटकोड सोल्यूशन आम्हाला वेक्टर किंवा संबंधित श्रेणीचे प्रतिनिधित्व करणारे तारांचा अ‍ॅरे परत करण्यास सांगते. आम्हाला एक प्रदान केले जाते अॅरे जे byथलीट्सनी प्राप्त केलेल्या स्कोअरचे प्रतिनिधित्व करते. मग आम्ही रँक निर्दिष्ट करण्यासाठी दिलेल्या स्कोअर अ‍ॅरेचा वापर करतो. पहिल्या 3 उमेदवारांसाठी एक छोटासा बदल आहे. त्याऐवजी त्यांना 1, 2 किंवा 3 सोप्या क्रमांकाची नोंद करा. आम्हाला सुवर्ण, रौप्य आणि कांस्यपदक देणे आवश्यक आहे. शीर्ष 3 उमेदवारांव्यतिरिक्त, आम्ही त्यांना 4 ते एन पर्यंत सोपी संख्या देऊ शकतो. चला काही उदाहरणे पहा.

सापेक्ष रँक्स लीटकोड सोल्यूशन

[1, 2, 3]
["Bronze Medal", "Silver Medal", "Gold Medal"]

स्पष्टीकरणः दिलेले अ‍ॅरेलीट्स byथलीट्सनी प्राप्त केलेल्या स्कोअरचे प्रतिनिधित्व करत असल्याने. सर्वाधिक गुण मिळविणा The्या थलीटला सुवर्णपदक वगैरे देण्यात येईल. अशाप्रकारे आम्ही अ‍ॅथलीटला Gold गुणांसह सुवर्ण पदक, leteथलीटला २ गुणांसह रौप्यपदक आणि leteथलीटला १ गुणांसह कांस्यपदक दिले.

[5, 4, 3, 2, 1]
["Gold Medal", "Silver Medal", "Bronze Medal", "4", "5"]

स्पष्टीकरणः अव्वल candidates उमेदवारांना पदके दिली जात असून उर्वरित उमेदवारांना पदभार देण्यात आला आहे. अशा प्रकारे आम्ही शीर्ष 3 उमेदवारांना पदके दिली आहेत, आणि संबंधित उमेदवारांना 3 आणि 4 श्रेणी दिली आहेत.

दृष्टीकोन

संबंधित रँकची समस्या लीटकोड सोल्यूशन आम्हाला शीर्ष 3 उमेदवारांना पदके देण्यास सांगते व उर्वरित उमेदवारांना पदवी देण्यास सांगते. सर्वात सोपी गोष्ट जी आपण विचार करू शकतो तो दिलेला क्रमवारी लावणे होय. परंतु मूळ निर्देशांकांकरिता आपण क्रमांक निश्चित करणे आवश्यक आहे. जर आपण दिलेला क्रम थेट क्रमवारीत लावला तर आपण मूळ निर्देशांक चुकवतो. आणि जागा निश्चित करण्याचा निर्णय घेण्यास सक्षम नाही. आम्ही मूळ निर्देशांक गमावणार नाहीत हे सुनिश्चित करण्यासाठी, आम्ही एक नवीन वेक्टर किंवा अ‍ॅरे तयार करतो जो मूळ निर्देशांक स्कोअरसह संचयित करतो. आम्ही हा नवीन अ‍ॅरे किंवा वेक्टर सॉर्ट करतो. क्रमवारी लावल्यानंतर, आम्ही संबंधित उमेदवारांना फक्त सुवर्ण, रौप्य आणि कांस्यपदक नियुक्त करतो आणि पात्र उमेदवारांना 4 ते एन पर्यंत क्रमांक मिळतो. आम्ही हे करू शकतो कारण जेव्हा आम्ही नवीन सुधारित अ‍ॅरे किंवा वेक्टर क्रमवारी लावतो तेव्हा मूळ निर्देशांक देखील त्यांची संचयित मूल्यांशी संबंधित स्थिती बदलतात.

सापेक्ष रँक्स कोड कोड लीटकोड सोल्यूशन

सापेक्ष रँक्स लीटकोड सोल्यूशनसाठी सी ++ कोड

#include <bits/stdc++.h>
using namespace std;

vector<string> findRelativeRanks(vector<int>& nums) {
    vector<pair<int,int>> temp;
    int n = nums.size();
    for(int i=0;i<n;i++){
        temp.push_back(make_pair(nums[i], i));
    }
    sort(temp.rbegin(), temp.rend());
    vector<string> answer(n);
    answer[temp[0].second] = "Gold Medal";
    if(n>=2){
        answer[temp[1].second] = "Silver Medal";
    }
    if(n>=3){
        answer[temp[2].second] = "Bronze Medal";
    }
    for(int i=3;i<n;i++)
        answer[temp[i].second] = to_string(i+1);
    return answer;
}

int main(){
    vector<int> nums = {5, 4, 3, 2, 1};
    vector<string> answer = findRelativeRanks(nums);
    for(auto x: answer)cout<<x<<" ";
}
Gold Medal Silver Medal Bronze Medal 4 5

जावा कोड संबंधित रँक्स लीटकोड सोल्यूशन

import java.util.*;
import java.lang.*;
import java.io.*;

class Solution {
  
    public static String[] findRelativeRanks(int[] nums) {
        int n = nums.length;
        int[][] pair = new int[nums.length][2];
        for (int i = 0; i < n; i++) {
            pair[i][0] = nums[i];
            pair[i][1] = i;
        }
        
        Arrays.sort(pair, (a, b) -> (b[0] - a[0]));
        
        String[] result = new String[nums.length];
        result[pair[0][1]] = "Gold Medal";
        if(n>=2)
            result[pair[1][1]] = "Silver Medal";
        if(n>=3)
            result[pair[2][1]] = "Bronze Medal";
        for (int i = 3; i < nums.length; i++) {
            result[pair[i][1]] = Integer.toString(i+1);
        }

        return result;
    }
    
  public static void main (String[] args) throws java.lang.Exception{
    int[] nums = {5, 4, 3, 2, 1};
    String[] answer = findRelativeRanks(nums);
    for(int i=0;i<5;i++)
      System.out.print(answer[i] + " ");
  }
}
Gold Medal Silver Medal Bronze Medal 4 5

गुंतागुंत विश्लेषण

वेळ कॉम्प्लेक्सिटी

ओ (एनएलजीएन), कारण क्रमवारी लावण्यासाठी ओ (एनएलजीएन) वेळ आवश्यक आहे, जेथे एन घटकांची संख्या आहे वेक्टर किंवा अ‍ॅरेची क्रमवारी लावली जात आहे.

स्पेस कॉम्प्लेक्सिटी

ओ (एनएलजीएन), आम्ही ओ (एनएलजीएन) स्पेस घेणार्‍या सॉर्टिंगचा वापर केला आहे. जागेची जटिलता देखील वेळ जटिलतेसारखीच असते.