ដំណោះស្រាយឡេឡេលេខកូដដែលទាក់ទង


កម្រិតលំបាក មានភាពងាយស្រួល
សួរញឹកញាប់ ក្រុមហ៊ុន google
តម្រៀប

បញ្ហាទំនាក់ទំនងឡេឡិនកូដដំណោះស្រាយសូមឱ្យយើងប្រគល់វ៉ិចទ័រឬខ្សែអក្សរដែលតំណាងឱ្យថ្នាក់ដែលទាក់ទង។ យើងត្រូវបានផ្តល់ជូនជាមួយ អារេ ដែលតំណាងឱ្យពិន្ទុដែលទទួលបានដោយអត្តពលិក។ បន្ទាប់មកយើងប្រើអារេពិន្ទុដែលបានផ្តល់ដើម្បីចាត់ថ្នាក់។ មានការផ្លាស់ប្តូរបន្តិចបន្តួចសម្រាប់បេក្ខជនកំពូលទាំង ៣ ។ ជំនួសឱ្យការផ្តល់ឱ្យពួកគេនូវលេខសាមញ្ញ ១, ២, ឬ ៣ ។ យើងត្រូវប្រគល់មេដាយមាសប្រាក់និងសំរិទ្ធ។ ក្រៅពីបេក្ខជនកំពូលទាំង ៣ យើងអាចកំណត់លេខងាយៗពីលេខ ៤ ដល់លេខ n ។ តោះមើលឧទាហរណ៍ខ្លះ។

ដំណោះស្រាយឡេឡេលេខកូដដែលទាក់ទង

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

ការពន្យល់ៈចាប់តាំងពីអារេដែលផ្តល់អោយតំណាងអោយពិន្ទុដែលអត្តពលិកទទួលបាន។ អត្តពលិកដែលមានពិន្ទុខ្ពស់ជាងគេនឹងទទួលបានមេដាយមាស។ ល។ ដូច្នេះយើងបានផ្តល់មេដាយមាសដល់អត្តពលិកដែលមានពិន្ទុ ៣ មេដាយប្រាក់ដល់អត្តពលិកដែលមានពិន្ទុ ២ និងមេដាយសំរិទ្ធដល់អត្តពលិកដែលមានពិន្ទុ ១ ។

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

ការពន្យល់ៈចាប់តាំងពីបេក្ខជនកំពូលទាំង ៣ ទទួលបានមេដាយហើយបេក្ខជនដែលនៅសល់ត្រូវបានចាត់ថ្នាក់។ ដូច្នេះយើងបានប្រគល់មេដាយដល់បេក្ខជន ៣ នាក់ខាងលើហើយបានចាត់ចំណាត់ថ្នាក់លេខ ៤ និងលេខ ៥ ដល់បេក្ខជនដែលត្រូវគ្នា។

វិធីសាស្រ្ត

បញ្ហាសម្ព័ន្ធឡេស៊្រីសសូលូសិនស្នើឱ្យយើងប្រគល់មេដាយដល់បេក្ខជនកំពូលទាំង ៣ និងចាត់ថ្នាក់អោយបេក្ខជនដែលនៅសល់។ រឿងសាមញ្ញបំផុតដែលមនុស្សម្នាក់អាចគិតបានគឺត្រូវតម្រៀបតាមលំដាប់ដែលបានផ្តល់ឱ្យ។ ប៉ុន្តែយើងចាំបាច់ត្រូវចាត់ថ្នាក់ឱ្យទៅសូចនាករដើម។ ដូច្នេះប្រសិនបើយើងតម្រៀបតាមលំដាប់ដែលបានផ្តល់ឱ្យដោយផ្ទាល់នោះយើងនឹងខកខានសូចនាករដើម។ ហើយនឹងមិនអាចសម្រេចចិត្តចាត់ថ្នាក់បានទេ។ ដូច្នេះដើម្បីធ្វើឱ្យប្រាកដថាយើងមិនបាត់បង់សន្ទស្សន៍ដើមយើងបង្កើតវ៉ិចទ័រថ្មីឬអារេដែលផ្ទុកសន្ទស្សន៍ដើមជាមួយពិន្ទុ។ យើងតម្រៀបអារេឬវ៉ិចទ័រថ្មីនេះ។ បន្ទាប់ពីការរៀបតាមលំដាប់លំដោយយើងគ្រាន់តែប្រគល់មេដាយមាសប្រាក់និងសំរិទ្ធដល់បេក្ខជនដែលត្រូវគ្នានិងទទួលបានចំណាត់ថ្នាក់ពីលេខ ៤ ដល់លេខ N សំរាប់បេក្ខជនដែលសាកសម។ យើងអាចធ្វើដូចនេះពីព្រោះនៅពេលយើងតម្រៀបអារេឬវ៉ិចទ័រដែលបានកែប្រែថ្មីសូចនាករដើមក៏ប្តូរទីតាំងរបស់ពួកគេដែលត្រូវនឹងតម្លៃដែលបានរក្សាទុក។

លេខកូដសំរាប់ដំណោះស្រាយលាភទាក់ទង

លេខកូដ C ++ សម្រាប់ដំណោះស្រាយទាក់ទងនឹងលាភ Leetcode

#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), ពីព្រោះការតម្រៀបទាមទារពេលវេលា O (NlogN) ដែល N ជាចំនួនធាតុអ៊ីយ៉ុងវ៉ិចទ័រឬអារេត្រូវបានគេតម្រៀប។

ភាពស្មុគស្មាញនៃលំហ

O (NlogN), ចាប់តាំងពីយើងបានប្រើការតម្រៀបដែលយកទំហំ O (NlogN) ។ ភាពស្មុគស្មាញនៃលំហក៏ដូចគ្នានឹងពេលវេលាស្មុគស្មាញដែរ។