Matrix Leetcode Solution ရှိကံကောင်းခြင်းနံပါတ်များ


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

Matrix Leetcode Solution ပြproblemနာရှိ Lucky နံပါတ်များသည်ပေးထားသော matrix မှကံကောင်းသောကိန်းတစ်ခုရှာဖွေရန်တောင်းဆိုခဲ့သည်။ Lucky integer ဆိုတာကကိန်းတန်းရဲ့အခြား element တွေထဲမှာအနိမ့်ဆုံးဖြစ်ပြီးအမြင့်ဆုံးကို column အဖြစ်သတ်မှတ်ပါတယ်။ ထို့ကြောင့်ကိန်းဂဏန်းတွင်ကိန်းဂဏန်းတစ်ခုထက် ပို၍ ရှိနိုင်သည်။ ဒါကြောင့်ငါတို့တစုံတယောက်သောသူသည်၏လွတ်လပ်ခွင့်ရှိသည်။ တကယ်လို့ဒီကိန်းဂဏန်းထဲမှာကံကောင်းတဲ့ကိန်းဂဏန်းမရှိဘူးဆိုရင်ကျွန်တော်တို့ဟာအချည်းနှီးသောအားနည်းချက်ကိုပြန်ပို့ပေးရမယ်။ ဒီတော့ဖြေရှင်းချက်ထဲကိုမ ၀ င်ခင်ဥပမာအနည်းငယ်ကိုကြည့်ကြရအောင်။

Matrix Leetcode Solution ရှိကံကောင်းခြင်းနံပါတ်များ

matrix = [[3,7,8],[9,11,13],[15,16,17]]
[15]

ရှင်းလင်းချက် - ၁၅ သည်၎င်း၏အတန်းထဲတွင်အနည်းဆုံးနံပါတ်ဖြစ်ပြီး၎င်းသည်၎င်း၏ကော်လံရှိအမြင့်ဆုံး element ဖြစ်သည်။ ထို့ကြောင့် 15 output ကိုအဖြစ်ပြန်လာလျက်ရှိသည်။

Lrix နံပါတ်များကို Matrix Leetcode Solution ဖြင့်ချဉ်းကပ်ပါ

Matrix Leetcode Solution ရှိ Lucky နံပါတ်များသည်ပြonesနာတစ်ခုဖြစ်သည်။ များစွာသော coding ကြိမ်များတွင်မကြာခဏမေးတယ်။ ပြrowနာကရိုးရှင်းပါတယ်၊ အနည်းဆုံး element တစ်ခုရှိသလားဆိုတာကိုကြည့်ဖို့လိုသည်။ တစ်ချိန်တည်းတွင်၎င်း၏ကော်လံတွင်အများဆုံးဖြစ်သင့်သည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်ယာယီ Array နှစ်ခု သုံး၍ လွယ်ကူစွာလုပ်နိုင်သည်။ ဤ Array များသည်အတန်းတစ်ခုစီ၏အနိမ့်ဆုံး element နှင့် column တစ်ခုစီ၏အများဆုံး element ကိုသိုလှောင်သည်။

၎င်းနောက်၎င်းယာယီ Array နှစ်ခုလုံးတွင်တွေ့ရလေ့ရှိသည့် element အချို့ရှိမရှိစစ်ဆေးရန်လိုအပ်သည်။ ဒါကြောင့်ငါတို့သုံးနိုင်သည် HashSet ဘယ်မှာကျနော်တို့တ ဦး တည်းခင်းကျင်း၏ element တွေကိုထည့်သွင်း။ ပြီးရင်ဒုတိယ array ရဲ့ element တွေကိုဖြတ်ပြီး HashSet ထဲမှာရှိမလားစစ်ဆေးတယ်။ Array နှစ်ခုလုံးတွင် element အချို့ရှိနေပါက၎င်းကို output အဖြစ်ပြန်ပို့သည်။ သို့သော် w သည်မည်သည့်ကိုက်ညီမှုမှမရပါကအချည်းနှီးသော vector ကိုအဖြေအဖြစ်ပြန်ပို့သည်။

Lrix နံပါတ်များအတွက် Matrix Leetcode Solution ရှိကုဒ်နံပါတ်

C ++ ကုဒ်

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

vector<int> luckyNumbers (vector<vector<int>>& matrix) {
    int n = matrix.size();
    int m = matrix[0].size();
    vector<int> row(n, INT_MAX), col(m, INT_MIN);
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++)
            row[i] = min(row[i], matrix[i][j]);
    }
    unordered_set<int> s;
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++)
            col[i] = max(col[i], matrix[j][i]);
    }
    for(int i=0;i<n;i++)
        s.insert(row[i]);
    for(int i=0;i<m;i++)
        if(s.count(col[i]))
            return {col[i]};
    return {};
}

int main(){
    vector<vector<int>> v = {{3,7,8},{9,11,13},{15,16,17}};
    vector<int> output = luckyNumbers(v);
    for(auto x: output)
        cout<<x;
}
15

ဂျာဗားကုဒ်

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

class Main
{
  public static List<Integer> luckyNumbers (int[][] matrix) {
      int n = matrix.length;
      int m = matrix[0].length;
      int[] row = new int[n];
      for(int i=0;i<n;i++)
          row[i] = Integer.MAX_VALUE;
      int[] col = new int[m];
      for(int i=0;i<m;i++)
          col[i] = Integer.MIN_VALUE;
      for(int i=0;i<n;i++){
          for(int j=0;j<m;j++)
              row[i] = Math.min(row[i], matrix[i][j]);
      }
      HashSet<Integer> s = new HashSet<Integer>();
      for(int i=0;i<m;i++){
          for(int j=0;j<n;j++)
              col[i] = Math.max(col[i], matrix[j][i]);
      }
      for(int i=0;i<n;i++)
          s.add(row[i]);
      for(int i=0;i<m;i++)
          if(s.contains(col[i]))
              return new ArrayList(Arrays.asList((col[i])));
      return new ArrayList();
  }

  public static void main (String[] args) throws java.lang.Exception
  {
    int[][] matrix = {{3,7,8},{9,11,13},{15,16,17}};
    List<Integer> output = luckyNumbers(matrix);
    if(output.size() > 0)
      System.out.print(output.get(0));
    
  }
}
15

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

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

အို (N * M)၊ N နှင့် M သည် array နှင့် row များ၏ element များဖြစ်သည်။

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

အို (N + M)၊ ဘာလို့လဲဆိုတော့ကျွန်တော်တို့ဟာယာယီ Array နှစ်ခုကိုသုံးထားလို့ပဲ