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

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

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

โซลูชัน Subarray Sum LeetCode อย่างต่อเนื่อง

คำชี้แจงปัญหาแบบต่อเนื่อง Subarray รวมโซลูชัน LeetCode – ให้จำนวนอาร์เรย์จำนวนเต็มและจำนวนเต็ม k ให้คืนค่าจริงหาก nums มีอาร์เรย์ย่อยต่อเนื่องที่มีขนาดอย่างน้อยสององค์ประกอบซึ่งมีองค์ประกอบรวมกันเป็นทวีคูณของ k หรือมิฉะนั้นจะเป็นเท็จ จำนวนเต็ม x คือผลคูณของ k ถ้ามีจำนวนเต็ม n เช่นนั้น x = n * k 0 คือ …

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

โซลูชัน LeetCode องค์ประกอบที่ใช้บ่อยยอดนิยม

คำชี้แจงปัญหา K องค์ประกอบที่ใช้บ่อย โซลูชัน LeetCode บอกว่า - เมื่อให้ค่าอาร์เรย์จำนวนเต็มและจำนวนเต็ม k ให้ส่งคืนองค์ประกอบ k ที่บ่อยที่สุด คุณสามารถส่งคืนคำตอบในลำดับใดก็ได้ ตัวอย่างที่ 1: อินพุต: nums = [1,1,1,2,2,3], k = 2 เอาต์พุต: [1,2] ตัวอย่างที่ 2: อินพุต: nums = [1], k = 1 เอาต์พุต: [1] …

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

Jump Game IV โซลูชัน LeetCode

คำชี้แจงปัญหา: Jump Game IV โซลูชัน LeetCode กล่าวว่า – จากอาร์เรย์ของจำนวนเต็ม arr คุณจะอยู่ในตำแหน่งแรกที่ดัชนีแรกของอาร์เรย์ ในขั้นตอนเดียว คุณสามารถข้ามจากดัชนี i ไปยังดัชนี: i + 1 โดยที่: i + 1 < arr.length. ผม – 1 โดยที่: ผม – 1 >= …

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

โซลูชัน LeetCode Subarray ต่อเนื่องที่ไม่ได้เรียงลำดับที่สั้นที่สุด

คำชี้แจงปัญหา Shortest Unsorted Continuous Subarray LeetCode Solution กล่าวว่า – จากจำนวนอาร์เรย์ที่เป็นจำนวนเต็ม คุณต้องค้นหาอาร์เรย์ย่อยแบบต่อเนื่องหนึ่งรายการซึ่งหากคุณจัดเรียงเฉพาะอาร์เรย์ย่อยนี้ในลำดับจากน้อยไปมาก อาร์เรย์ทั้งหมดจะถูกเรียงลำดับจากน้อยไปมาก ส่งกลับความยาวของอาร์เรย์ย่อยที่สั้นที่สุด ตัวอย่างที่ 1: …

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

รวมรูทกับหมายเลขลีทโค้ดโซลูชั่น

คำชี้แจงปัญหา Sum Root to Leaf Numbers โซลูชัน LeetCode กล่าวว่า – คุณจะได้รับรากของต้นไม้ไบนารีที่มีตัวเลขตั้งแต่ 0 ถึง 9 เท่านั้น แต่ละเส้นทางจากรากสู่ใบในต้นไม้แสดงถึงตัวเลข ตัวอย่างเช่น เส้นทาง root-to-leaf 1 -> 2 -> 3 แทนตัวเลข 123 ส่งกลับผลรวมของตัวเลข root-to-leaf ทั้งหมด ทดสอบ …

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

คะแนนของวงเล็บ LeetCode Solution

คำชี้แจงปัญหา คะแนนของวงเล็บ LeetCode Solution กล่าวว่า – ให้สตริงวงเล็บที่สมดุลและส่งกลับคะแนนสูงสุด คะแนนของสตริงวงเล็บแบบสมดุลเป็นไปตามกฎต่อไปนี้: “()” มีคะแนน 1 AB มีคะแนน A + B โดยที่ A และ B เป็นสตริงวงเล็บแบบสมดุล (A) มีคะแนน 2 * A โดยที่ A คือ …

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

สี่เหลี่ยมผืนผ้าทับซ้อน 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] ข้อจำกัด: จำนวนโหนดใน …

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

Translate »