ค้นหาโซลูชัน LeetCode ผู้พิพากษาเมือง

คำชี้แจงปัญหา: ค้นหาวิธีแก้ปัญหา Leetcode ผู้พิพากษาในเมือง: ในเมืองมีคน n คนติดป้ายกำกับจาก 1 ถึง n มีข่าวลือว่าหนึ่งในคนเหล่านี้แอบเป็นผู้พิพากษาเมือง ถ้าผู้พิพากษาเมืองมีอยู่จริง: ผู้พิพากษาเมืองไม่มีใครไว้วางใจ ทุกคน (ยกเว้นผู้พิพากษาเมือง) ไว้วางใจผู้พิพากษาเมือง …

อ่านเพิ่มเติม

สี่เหลี่ยมผืนผ้าทับซ้อน LeetCode Solution

คำชี้แจงปัญหา: Rectangle Overlap LeetCode Solution – กล่าวว่าสี่เหลี่ยมผืนผ้าที่จัดแนวแกนจะแสดงเป็นรายการ [x1, y1, x2, y2] โดยที่ (x1, y1) คือพิกัดของมุมล่างซ้าย และ (x2 , y2) คือพิกัดของมุมบนขวา ขอบด้านบนและด้านล่างขนานกับแกน X และด้านซ้าย …

อ่านเพิ่มเติม

โซลูชั่น LeetCode ปีประชากรสูงสุด

คำชี้แจงปัญหา

โซลูชั่น LeetCode ปีประชากรสูงสุด บอกว่า – คุณได้รับอาร์เรย์จำนวนเต็ม 2 มิติ logs แต่ละที่ logs[i] = [birthi, deathi] ระบุปีเกิดและตายของ ith คน

พื้นที่ปลูก ประชากรในบางปี x คือจำนวนคนที่มีชีวิตอยู่ในปีนั้น ดิ ith คนถูกนับในปี xประชากรของ if x อยู่ใน รวมทั้ง พิสัย [birthi, deathi - 1]. โปรดทราบว่าบุคคลนั้นคือ ไม่ นับในปีที่เสียชีวิต

การส่งคืนสินค้า ประชากรสูงสุด ปี.

 

1 ตัวอย่าง:

Input:

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

Output:

 1993

คำอธิบาย:

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

2 ตัวอย่าง:

Input:

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

Output:

 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 Solution

– อันดับแรก เราจะสร้างอาร์เรย์ขนาด 101 ขึ้นมาหนึ่งอาร์เรย์ เนื่องจากข้อจำกัดด้านจำนวนปีอยู่ในช่วงปี 1950 ถึง 2050

– หลังจากนั้น เราจะเรียกใช้ลูปจาก 0 ถึงความยาวของบันทึกและจะเพิ่มจำนวนอาร์เรย์ที่ index(logs[i][o]) ขึ้น 1 และลดจำนวนอาร์เรย์ที่ดัชนี (logs[i) ][1]) โดย 1

– อีกครั้ง เราจะเรียกใช้การวนซ้ำจาก 0 ถึงความยาวของอาร์เรย์ และทำการนับตัวแปรก่อนหน้าหนึ่งรายการ และอัปเดตแต่ละองค์ประกอบของอาร์เรย์ตามอาร์เรย์+ก่อนหน้า และอัปเดตก่อนหน้าโดย prev = อาร์เรย์[i]

- ในที่สุด เราจะเรียกใช้ลูปและค้นหาค่าสูงสุดในอาร์เรย์และส่งคืนดัชนีนั้น ๆ (index+1950) ดังนั้นจงหาปีประชากรสูงสุด

โซลูชั่น Leetcode ปีประชากรสูงสุด

รหัส:

โซลูชัน Leetcode Python ของประชากรสูงสุดปี:

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)

ความซับซ้อนของเวลา

Space Complexity ของวิธีแก้ปัญหาข้างต้นคือ O(1)

เนื่องจากเราได้สร้างอาร์เรย์ของความยาว = 101 ดังนั้นเราสามารถพิจารณาค่าคงที่ได้

 

 

 

 

 

 

Binary Tree Inorder Traversal โซลูชัน LeetCode

คำชี้แจงปัญหา: Binary Tree Inorder Traversal โซลูชัน LeetCode จากรากของต้นไม้ไบนารี ให้คืนค่าการข้ามผ่านที่ไม่เป็นระเบียบของค่าโหนด ตัวอย่างที่ 1: อินพุต: รูท = [1,null,2,3] เอาต์พุต: [1,3,2] ตัวอย่างที่ 2: อินพุต: รูท = [] เอาต์พุต: [] ตัวอย่างที่ 3: อินพุต: รูท = [1] เอาต์พุต: [1] ข้อจำกัด: จำนวนโหนดใน …

อ่านเพิ่มเติม

ตรวจหาโซลูชัน Leetcode ของ Capital

คำชี้แจงปัญหา: Detect Capital Leetcode Solution กล่าวว่า – ให้สตริงที่คืนค่าเป็นจริงหากการใช้ตัวพิมพ์ใหญ่ในนั้นถูกต้อง เงื่อนไขของคำที่ถูกต้องคือ : ตัวอักษรทั้งหมดในคำนี้เป็นตัวพิมพ์ใหญ่ เช่น "UK" ตัวอักษรทั้งหมดในคำนี้ไม่ใช่ตัวพิมพ์ใหญ่ เช่น "going" เท่านั้น …

อ่านเพิ่มเติม

โซลูชั่น LeetCode ปีประชากรสูงสุด

คำชี้แจงปัญหา: โซลูชัน Leetcode ปีที่ประชากรสูงสุดกล่าวว่า – คุณจะได้รับบันทึกอาร์เรย์จำนวนเต็ม 2 มิติ โดยที่แต่ละ logs[i] = [birthi, deathi] ระบุปีเกิดและการเสียชีวิตของบุคคลนั้น ประชากรบางปี x คือจำนวนคนที่มีชีวิตอยู่ในปีนั้น ? บุคคลที่ ith จะถูกนับในปีประชากรของ x ถ้า x คือ ...

อ่านเพิ่มเติม

ต้นทุนขั้นต่ำปีนบันได LeetCode Solution

คำชี้แจงปัญหา ต้นทุนขั้นต่ำ ปีนบันได โซลูชัน LeetCode – กำหนดต้นทุนอาร์เรย์จำนวนเต็ม โดยที่ cost[i] คือต้นทุนของขั้นตอน ith บนบันได เมื่อคุณชำระค่าใช้จ่ายแล้ว คุณสามารถเดินขึ้นได้หนึ่งหรือสองขั้น คุณสามารถเริ่มจากขั้นตอนที่มีดัชนี 0 หรือขั้นตอนด้วย ...

อ่านเพิ่มเติม

ค้นหาโซลูชัน LeetCode ผู้พิพากษาเมือง

คำชี้แจงปัญหา: ค้นหาวิธีแก้ปัญหา LeetCode ผู้พิพากษาเมือง – ในเมืองหนึ่งคนมี n คนติดป้ายกำกับจาก 1 ถึง n มีข่าวลือว่าคนพวกนี้แอบไปเป็นผู้พิพากษาเมืองและเราต้องหาตัวผู้พิพากษาเมืองให้พบ ถ้าผู้พิพากษาเมืองมีอยู่จริง: ผู้พิพากษาเมืองไม่มีใครไว้วางใจ …

อ่านเพิ่มเติม

การจัดเรียงเหรียญ โซลูชัน Leetcode

คำชี้แจงปัญหา การจัดเรียงเหรียญ โซลูชัน LeetCode – “การจัดเรียงเหรียญ” ขอให้คุณสร้างบันไดด้วยเหรียญเหล่านี้ บันไดประกอบด้วย k แถว โดยที่แถวนั้นประกอบด้วยเหรียญ i บันไดแถวสุดท้ายอาจไม่สมบูรณ์ สำหรับจำนวนเหรียญที่กำหนด ให้คืน ...

อ่านเพิ่มเติม

การต่อกันของ Array LeetCode Solution

คำอธิบายปัญหา: The Concatenation of Array Leetcode Solution: ระบุว่า จากจำนวนอาร์เรย์ที่เป็นจำนวนเต็มของความยาว n คุณต้องการสร้างอาร์เรย์ที่มีความยาว 2n โดยที่ ans[i] == nums[i] และ ans[i + n] = = nums[i] สำหรับ 0 <= i < n (0-indexed) โดยเฉพาะ ans คือการต่อกันของอาร์เรย์ nums สองตัว ส่งคืนอาร์เรย์ ans อันดับแรก ให้พยายามทำความเข้าใจปัญหาและสิ่งที่ระบุ ปัญหา …

อ่านเพิ่มเติม

Translate »