ចតុកោណជាន់លើដំណោះស្រាយ LeetCode

សេចក្តីថ្លែងការណ៍បញ្ហា៖ ចតុកោណកែងត្រួតលើគ្នា LeetCode Solution – និយាយថាចតុកោណកែងដែលតម្រឹមអ័ក្សត្រូវបានតំណាងជាបញ្ជី [x1, y1, x2, y2] ដែល (x1, y1) គឺជាកូអរដោណេនៃជ្រុងខាងក្រោមឆ្វេងរបស់វា និង (x2 , y2) គឺ​ជា​កូអរដោណេ​នៃ​ជ្រុង​ខាង​ស្ដាំ​របស់វា។ គែមខាងលើ និងខាងក្រោមរបស់វាស្របទៅនឹងអ័ក្ស X ហើយផ្នែកខាងឆ្វេងរបស់វា…

អាន​បន្ថែម

ដំណោះស្រាយ LeetCode ឆ្នាំចំនួនប្រជាជនអតិបរមា

សេចក្តីថ្លែងការណ៍បញ្ហា។

ដំណោះស្រាយ LeetCode ឆ្នាំចំនួនប្រជាជនអតិបរមា និយាយថា - អ្នកត្រូវបានផ្តល់អារេចំនួនគត់ 2D logs ដែលជាកន្លែងដែលគ្នា logs[i] = [birthi, deathi] បង្ហាញពីឆ្នាំកំណើតនិងមរណភាព ith មនុស្ស។

នេះ ចំនួនប្រជាជនក្នុងមួយឆ្នាំ x គឺជាចំនួនមនុស្សនៅរស់ក្នុងឆ្នាំនោះ។ នេះ។ ith មនុស្សម្នាក់ត្រូវបានរាប់ក្នុងឆ្នាំ xចំនួនប្រជាជនប្រសិនបើ x គឺស្ថិតនៅក្នុង រួមបញ្ចូល ជួរ [birthi, deathi - 1]. ចំណាំថាបុគ្គលនោះ។ មិនមាន រាប់ក្នុងឆ្នាំដែលពួកគេស្លាប់។

ត្រឡប់ទៅវិញ ឆ្នាំចំនួនប្រជាជនអតិបរមា.

 

ឧទាហរណ៍ 1:

បញ្ចូល:

 logs = [[1993,1999],[2000,2010]]

លទ្ធផល:

 1993

ការពន្យល់:

 The maximum population is 1, and 1993 is the earliest year with this population.

ឧទាហរណ៍ 2:

បញ្ចូល:

 logs = [[1950,1961],[1960,1971],[1970,1981]]

លទ្ធផល:

 1960

ការពន្យល់:

 
The maximum population is 2, and it had happened in years 1960 and 1970.
So the maximum population year is 1960.

 

ឧបសគ្គ៖

  • 1 <= logs.length <= 100
  • 1950 <= birthi < deathi <= 2050

 

អាល់ហ្គោរីត -

  • ដើម្បីស្វែងរកឆ្នាំចំនួនប្រជាជនអតិបរមា។ ជាដំបូង យើងនឹងផ្តោតលើចំនួនប្រជាជនសរុបក្នុងឆ្នាំនីមួយៗ ដោយពិនិត្យមើលចន្លោះពេលនីមួយៗនៃម៉ាទ្រីសដែលបានផ្តល់ឱ្យ ហើយនឹងរកឃើញចំនួនអតិបរមា និងត្រឡប់ឆ្នាំនៃតម្លៃអតិបរមា។ ប្រសិនបើចំនួនដូចគ្នានោះ យើងគ្រាន់តែត្រឡប់ឆ្នាំមុន (ឆ្នាំដំបូងបំផុត)។

វិធីសាស្រ្តសម្រាប់ឆ្នាំចំនួនប្រជាជនអតិបរមាដំណោះស្រាយ LeetCode

- ដំបូង យើងនឹងបង្កើតអារេមួយនៃទំហំ 101 ពីព្រោះឧបសគ្គនៃឆ្នាំស្ថិតនៅចន្លោះឆ្នាំ 1950 ដល់ឆ្នាំ 2050។

- បន្ទាប់ពីនោះ យើងនឹងដំណើរការរង្វិលជុំពី 0 ទៅប្រវែងនៃកំណត់ហេតុ ហើយនឹងបង្កើនចំនួនអារេនៅលិបិក្រម(logs[i][o]) ដោយ 1 និងបន្ថយចំនួនអារេនៅលិបិក្រម (logs[i] [1]) ដោយ 1

– ម្តងទៀត យើងនឹងដំណើរការរង្វិលជុំពី 0 ទៅប្រវែងនៃអារេ ហើយធ្វើការរាប់អថេរមួយជាមុន ហើយធ្វើបច្ចុប្បន្នភាពធាតុនីមួយៗនៃអារេដោយអារេ+prev ហើយធ្វើបច្ចុប្បន្នភាពមុនដោយ prev = អារេ[i]។

- ជាចុងក្រោយ យើងនឹងដំណើរការរង្វិលជុំមួយ ហើយស្វែងរកតម្លៃអតិបរមានៅក្នុងអារេ ហើយត្រឡប់សន្ទស្សន៍ជាក់លាក់នោះ (index+1950)។ ដូច្នេះសូមស្វែងរកឆ្នាំចំនួនប្រជាជនអតិបរមា។

ដំណោះស្រាយលេខសម្ងាត់ឆ្នាំចំនួនប្រជាជនអតិបរមា

លេខកូដ:

ដំណោះស្រាយឆ្នាំ Python Leetcode ចំនួនប្រជាជនអតិបរមា៖

class Solution:
    def maximumPopulation(self, logs: List[List[int]]) -> int:
        arr = [0]*101
        for i in range(len(logs)):
            
            arr[logs[i][0]-1950] += 1
            
            arr[logs[i][1]-1950] -= 1
            
        
        previous = arr[0]
        for i in range(1,101):
            arr[i] += previous
            previous = arr[i]
            
        print(arr)
        maxi = 0
        ind = 0
        
        for i in range(len(arr)):
            if arr[i] > maxi:
                maxi = arr[i]
                ind = i + 1950
        print(maxi)        
        return ind

ឆ្នាំ​ប្រជាជន​អតិបរមា​ដំណោះស្រាយ Java Leetcode៖

class Solution {
    public int maximumPopulation(int[][] logs) {
        
        int[] arr = new int[101];
        for(int i = 0;i < logs.length;i++){
            
            arr[logs[i][0]-1950] +=1;
            arr[logs[i][1]-1950] -=1;
            
            
        }
        
        int prev = arr[0];
        for(int i=1;i<arr.length;i++){
            
            arr[i] += prev;
            prev = arr[i];
            
        }
        
        int ind = 0;
        int maxi = 0;
        
        for(int i=0;i<arr.length;i++){
            
            if(maxi < arr[i]){
                
                maxi = arr[i];
                ind = i+1950;
            }
        }
        
        
        return ind;
        
        
    }
}

ការវិភាគស្មុគ្រស្មាញនៃចំនួនប្រជាជនអតិបរមា ដំណោះស្រាយ Leetcode ឆ្នាំ:

ស្មុគស្មាញពេលវេលា

ភាពស្មុគស្មាញនៃពេលវេលានៃដំណោះស្រាយខាងលើគឺ O(n) ។

ស្មុគស្មាញពេលវេលា

ភាពស្មុគស្មាញលំហនៃដំណោះស្រាយខាងលើគឺ O(1) ។

ដូចដែលយើងបានបង្កើតអារេនៃប្រវែង = 101. ដូច្នេះយើងអាចពិចារណាវាថេរ

 

 

 

 

 

 

Binary Tree Inorder Traversal LeetCode ដំណោះស្រាយ

សេចក្តីថ្លែងការណ៍បញ្ហា៖ ដំណោះ​ស្រាយ​ការ​ឆ្លង​កាត់​លីតកូដ​តាម​លំដាប់​នៃ​មែកធាង​គោលពីរ ដោយ​បាន​ផ្ដល់​ឫស​នៃ​មែកធាង​គោលពីរ ត្រឡប់​ការ​ឆ្លងកាត់​តាមលំដាប់​នៃ​តម្លៃ​ថ្នាំង​របស់វា។ ឧទាហរណ៍ 1: បញ្ចូល៖ root = [1,null,2,3] ទិន្នផល៖ [1,3,2] ឧទាហរណ៍ 2: បញ្ចូល៖ root = [] ទិន្នផល៖ [] ឧទាហរណ៍ 3: បញ្ចូល៖ root = [1] ទិន្នផល៖ [1] ឧបសគ្គ៖ ចំនួនថ្នាំងក្នុង…

អាន​បន្ថែម

ស្វែងរកដំណោះស្រាយ Capital Letcode

សេចក្តីថ្លែងការណ៍បញ្ហា៖ រកឃើញ Capital Leetcode Solution និយាយថា – ផ្តល់ខ្សែអក្សរ ត្រឡប់ពិត ប្រសិនបើការប្រើប្រាស់អក្សរធំនៅក្នុងវាត្រឹមត្រូវ។ លក្ខខណ្ឌសម្រាប់ពាក្យដែលត្រឹមត្រូវគឺ៖ អក្សរទាំងអស់នៅក្នុងពាក្យនេះគឺជាអក្សរធំ ដូចជា "UK"។ អក្សរទាំងអស់នៅក្នុងពាក្យនេះមិនមែនជាអក្សរធំដូចជា "ទៅ" ទេ។ មានតែ…

អាន​បន្ថែម

ដំណោះស្រាយ LeetCode ឆ្នាំចំនួនប្រជាជនអតិបរមា

សេចក្តីថ្លែងការណ៍បញ្ហា៖ ឆ្នាំចំនួនប្រជាជនអតិបរមា ដំណោះស្រាយ Leetcode និយាយថា – អ្នកត្រូវបានផ្តល់កំណត់ហេតុអារេចំនួនគត់ 2D ដែលកំណត់ហេតុនីមួយៗ[i] = [កំណើត, ការស្លាប់] បង្ហាញពីឆ្នាំកំណើត និងការស្លាប់របស់មនុស្ស។ ចំនួនប្រជាជននៃឆ្នាំខ្លះ x គឺជាចំនួនមនុស្សនៅរស់ក្នុងឆ្នាំនោះ? បុគ្គលនោះត្រូវបានរាប់ក្នុងចំនួនប្រជាជននៃឆ្នាំ x ប្រសិនបើ x គឺ…

អាន​បន្ថែម

តម្លៃទាបនៃការឡើងជណ្តើរ LeetCode Solution

សេចក្តីថ្លែងការណ៍បញ្ហាតម្លៃអប្បបរមានៃការឡើងជណ្តើរ ដំណោះស្រាយ LeetCode - តម្លៃអារេចំនួនគត់ត្រូវបានផ្តល់ឱ្យ ដែលតម្លៃ[i] គឺជាថ្លៃដើមនៃជំហាននៅលើជណ្តើរ។ នៅពេលដែលអ្នកបង់ថ្លៃនោះ អ្នកអាចឡើងមួយ ឬពីរជំហាន។ អ្នកអាចចាប់ផ្តើមពីជំហានជាមួយសន្ទស្សន៍ 0 ឬជំហានជាមួយ…

អាន​បន្ថែម

ស្វែងរកដំណោះស្រាយចៅក្រម LeetCode

សេចក្តីថ្លែងការណ៍អំពីបញ្ហា៖ ស្វែងរកដំណោះស្រាយចៅក្រមក្រុង LeetCode – នៅក្នុងទីក្រុងមានមនុស្ស n ត្រូវបានដាក់ស្លាកពីលេខ 1 ដល់ n ។ មាន​ពាក្យ​ចចាមអារ៉ាម​ថា មនុស្ស​ម្នាក់​ក្នុង​ចំណោម​អ្នក​ទាំង​នេះ​ជា​ចៅក្រម​ក្រុង​ដោយ​សម្ងាត់ ហើយ​យើង​ត្រូវ​រក​ចៅក្រម​ក្រុង។ បើ​ចៅក្រម​ក្រុង​មាន​មែន ចៅក្រម​ក្រុង​មិន​ទុក​ចិត្ត​អ្នក​ណា​ទេ។ …

អាន​បន្ថែម

ការរៀបចំដំណោះស្រាយ Coins Leetcode

សេចក្តីថ្លែងការណ៍អំពីបញ្ហា ដំណោះស្រាយនៃការរៀបចំកាក់ LeetCode - "ការរៀបចំកាក់" ស្នើឱ្យអ្នកបង្កើតជណ្តើរជាមួយនឹងកាក់ទាំងនេះ។ ជណ្ដើរ​មាន​ជួរ k ដែល​ជួរ ith មាន​កាក់ i ។ ជួរចុងក្រោយនៃជណ្តើរអាចមិនពេញលេញ។ សម្រាប់ចំនួនកាក់ដែលបានផ្តល់ឱ្យ ត្រឡប់…

អាន​បន្ថែម

ការភ្ជាប់នៃដំណោះស្រាយអារេ LeetCode

ការពិពណ៌នាអំពីបញ្ហា៖ ការភ្ជាប់នៃដំណោះស្រាយ Array Leetcode៖ ចែងថាដោយផ្តល់លេខអារេចំនួនគត់នៃប្រវែង n អ្នកចង់បង្កើតអារេ ans នៃប្រវែង 2n ដែល ans[i] == nums[i] និង ans[i + n] = = nums[i] សម្រាប់ 0 <= i < n (0-indexed) ។ ជាពិសេស ans គឺជាការភ្ជាប់គ្នានៃអារេចំនួនពីរ។ ត្រឡប់អារេ ans ។ ដំបូង​យើង​ព្យាយាម​យល់​ពី​បញ្ហា និង​អ្វី​ដែល​វា​ចែង។ បញ្ហា …

អាន​បន្ថែម

ត្រឡប់ដំណោះស្រាយរូបភាព LeetCode

សេចក្តីថ្លែងការណ៍បញ្ហា ការបំលែងរូបភាពដំណោះស្រាយ LeetCode - យើងត្រូវបានផ្តល់ម៉ាទ្រីសនៃទំហំ n ។ យើងត្រូវអនុវត្តកិច្ចការចំនួន 2- ត្រឡប់រូបភាពផ្ដេក៖ វាមានន័យថា ជួរនីមួយៗនៃម៉ាទ្រីសដែលបានផ្តល់ឱ្យគឺត្រូវដាក់បញ្ច្រាសរូបភាព៖ ធ្វើឱ្យទាំងអស់ 0's ទៅ 1's & ច្រាសមកវិញលទ្ធផល...

អាន​បន្ថែម

Translate »