رشتن جي قطار Leetcode حل


تڪليف جي سطح آسان
بار بار پڇڻ ۾ گوگل
ترتيب ڏيڻ

مسئلو Relative Ranks Leetcode Solution اسان کان پڇي ٿو ته ويڪر يا ڪنهن قطعي جي قطار جو نسبتي صفن جي نمائندگي ڪريون ٿا. اسان کي هڪ مهيا ڪيو ويندو آهي صف اهو رانديگرن پاران حاصل ڪيل سکور جي نمائندگي ڪري ٿو. پوءِ اسان صفون گڏ ڪرڻ لاءِ ڏنل ڏنل سيريز صف استعمال ڪندا آهيون. مٿين 3 اميدوارن جي لاءِ هڪ نن changeڙي تبديلي آهي. انهي جي بدران ، انهن کي سادي نمبر 1 ، 2 ، يا 3. تفويض ڪندي ، اسان کي سون ، چاندي ، ۽ برونز ميڊل تفويض ڪرڻ گهرجن. مٿين 3 اميدوارن کان سواءِ ، اسان انهن کي 4 کان ن تائين سادي نمبر تفويض ڪري سگهون ٿا. اچو ته ڪجھ مثالن تي نظر وجهون.

رشتن جي قطار Leetcode حل

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

وضاحت: جئين ڏني وئي صف ، رانديگرن پاران حاصل ڪيل سکور جي نمائندگي ڪري ٿي. سڀ کان وڌيڪ سکور سان گڏ رانديگر کي گولڊ ميڊل ۽ ايئن ڏنو ويندو. اهڙي طرح اسان 3 جي اسڪور سان گولڊ ميڊل ڏني ، 2 جي اسڪور سان سلور ميڊل پهتا ۽ 1 جو ايوارڊ حاصل ڪري ورجن کي برانز ميڊل ڏنو.

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

وضاحت: جتان جي مٿين 3 اميدوارن کي تمغا ڏنا ويندا آهن ۽ باقي اميدوارن کي رتبو ڏنو ويندو آهي. اھڙيءَ طرح اسان مٿين 3 اميدوارن کي تمغا تفويض ڪيا آھن ، ۽ لاڳاپيل اميدوارن کي 4 ، ۽ 5 جي تشڪيل ڏني آھي.

چرچو

مسئلو Relative Ranks Leetcode Solution اسان کان پڇي ٿو ته مٿين 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

پيچيدگي تجزيي

وقت جي پيچيدگي

اي (بلاگ اين) ، ڇاڪاڻ ته ترتيب ڏيڻ وقت O (NlogN) وقت جي ضرورت هوندي آهي ، جتي N عناصر جو تعداد آهي ويڪٽر يا صف کي ترتيب ڏنل آهي.

خلائي پيچيدگي

اي (بلاگ اين) ، ڇاڪاڻ ته اسان ترتيب وار استعمال ڪيو آهي جيڪي O (NlogN) کي کسي وٺن ٿيون. خلائي پيچيدگي ساڳئي وقت جي پيچيدگي وانگر آهي.