ဆွေမျိုးအဆင့် Leetcode ဖြေရှင်းချက်


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် Google
sorting

အဆိုပါပြသနာ Relative Ranks Leetcode Solution သည်အားနည်းချက်ရှိသည့်ရာထူးများကိုကိုယ်စားပြုသော vector သို့မဟုတ် strings များစွာကိုပြန်ယူရန်တောင်းဆိုသည်။ ငါတို့နှင့်အတူထောက်ပံ့ပေးလျက်ရှိသည် အခင်းအကျင်း ကြောင်းအားကစားသမားများကရရှိသောရမှတ်ကိုကိုယ်စားပြုတယ်။ ထိုအခါကျွန်ုပ်တို့သည်ရာထူးသတ်မှတ်ဖို့ပေးထားသောရမှတ်ခင်းကျင်းကိုအသုံးပြုပါ။ ထိပ်တန်းကိုယ်စားလှယ်လောင်းသုံး ဦး အတွက်သေးငယ်တဲ့ပြောင်းလဲမှုရှိပါတယ်။ သူတို့ကိုနံပါတ် ၁၊ ၂၊ ၃ ကိုရအောင်လုပ်မယ့်အစား၊ ရွှေ၊ ငွေ၊ ကြေးတံဆိပ်ကိုသတ်မှတ်ဖို့လိုတယ်။ ထိပ်တန်းကိုယ်စားလှယ်လောင်း ၃ ဦး မှလွဲ၍ ၄ င်းတို့ကို ၄ မှ n သို့ရိုးရှင်းသောနံပါတ်များသတ်မှတ်နိုင်သည်။ ဥပမာအချို့ကိုကြည့်ကြစို့။

ဆွေမျိုးအဆင့် Leetcode ဖြေရှင်းချက်

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

ရှင်းလင်းချက်: ပေးထားသောခင်းကျင်းသည်အားကစားသမားများရရှိသောရမှတ်များကိုကိုယ်စားပြုသောကြောင့်။ အမြင့်ဆုံးရမှတ်အားကစားသမားကိုရွှေတံဆိပ်ဆုပေးမည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်ရမှတ် ၃ မှတ်ဖြင့်အားကစားသမားကိုရွှေတံဆိပ် ၂ ခုရမှတ်အားဖြင့်ငွေတံဆိပ်နှင့် ၁ ဂိုးရမှတ်အားကစားသမားအားကြေးတံဆိပ်ကိုပေးသည်။

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

ရှင်းလင်းချက် - ထိပ်တန်း ၃ ဦး မှဆုတံဆိပ်များရရှိပြီး၊ ထို့ကြောင့်ကျွန်ုပ်တို့သည်ထိပ်တန်း ၃ ဦး အားဆုတံဆိပ်များပေးပြီး၊ အဆင့် ၄ နှင့် ၅ ကိုသက်ဆိုင်ရာကိုယ်စားလှယ်များအားပေးအပ်ခဲ့သည်။

ချဉ်းကပ်နည်း

Relative Ranks Leetcode Solution မှပြcandidatesနာကထိပ်တန်းကိုယ်စားလှယ်သုံးယောက်အတွက်ဆုတံဆိပ်များကိုသတ်မှတ်ပေးရန်နှင့်ကျန်ကိုယ်စားလှယ်လောင်းများကိုရာထူးသတ်မှတ်ပေးရန်တောင်းဆိုသည်။ စဉ်းစားရမည့်အရိုးရှင်းဆုံးအရာမှာပေးထားသည့်အစီအစဉ်ကိုစီရန်ဖြစ်သည်။ ဒါပေမယ့်ကျနော်တို့ကမူလညွှန်းကိန်းမှရာထူးသတ်မှတ်ဖို့လိုအပ်ပါတယ်။ ဒါကြောင့်အကယ်လို့ပေးထားတဲ့ sequence ကိုကျွန်ုပ်တို့တိုက်ရိုက်စီရင်လျှင်မူရင်းညွှန်းကိန်းများကိုလက်လွတ်သွားမှာပါ။ နှင့်ရာထူးသတ်မှတ်ဖို့ဆုံးဖြတ်နိုင်ပါလိမ့်မည်မဟုတ်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်မူလညွှန်းကိန်းများကိုမဆုံးရှုံးစေရန်အတွက်ကျွန်ုပ်တို့သည်မူရင်းညွှန်းကိန်းများကိုရမှတ်များနှင့်အတူသိုလှောင်ထားသည့်အားနည်းချက်ကိုသို့မဟုတ်အသစ်တစ်ခုဖန်တီးသည်။ ကျနော်တို့ဒီခင်းကျင်းသို့မဟုတ်အားနည်းချက်ကိုအသစ် sort ။ ရွေးချယ်ပြီးသည့်နောက်တွင်ကျွန်ုပ်တို့သည်ရွှေ၊ ငွေနှင့်ကြေးတံဆိပ်ကိုသက်ဆိုင်ရာကိုယ်စားလှယ်လောင်းများအားအပ်နှင်းပြီးထိုက်သင့်သောကိုယ်စားလှယ်လောင်းများကို 3 မှ n အထိသတ်မှတ်သည်။ ကျွန်ုပ်တို့၏ပြုပြင်ထားသော array သို့မဟုတ် vector အသစ်ကို sort လိုက်သောအခါမူလညွှန်းကိန်းများသည်သိုလှောင်ထားသောတန်ဖိုးများနှင့်သက်ဆိုင်သောနေရာများကိုလဲလှယ်ပေးသောကြောင့်ဖြစ်သည်။

ဆွေမျိုးအဆင့် Leetcode ဖြေရှင်းချက်များအတွက်ကုဒ်

ဆွေမျိုးအဆင့် Leetcode ဖြေရှင်းချက်များအတွက် C ++ ကုဒ်

#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

ဂျာဗားကုဒ်နှိုင်းယှဉ်အဆင့် Leetcode ဖြေရှင်းချက်

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

ရှုပ်ထွေးဆန်းစစ်ခြင်း

အချိန်ရှုပ်ထွေး

အို (NlogN), အဘယ်ကြောင့်ဆိုသော် sorting သည် O (NlogN) အချိန်လိုအပ်သည်၊ အဘယ်ကြောင့်ဆိုသော် N သည် vector သို့မဟုတ် array ကို sort လုပ်ထားသော element များ၏နံပါတ်ဖြစ်သည်။

အာကာသရှုပ်ထွေးမှု

အို (NlogN), ကျွန်တော် O (NlogN) နေရာယူသော sorting ကိုအသုံးပြုကြကတည်းက။ နေရာရှုပ်ထွေးမှုသည်လည်းအချိန်ရှုပ်ထွေးမှုနှင့်အတူတူပင်ဖြစ်သည်။