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

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

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

ค้นหาผู้ชนะของเกม Circular โซลูชัน LeetCode

คำชี้แจงปัญหา ค้นหาผู้ชนะของเกมวงกลม โซลูชัน LeetCode – มีเพื่อน n คนที่กำลังเล่นเกมอยู่ เพื่อน ๆ นั่งเป็นวงกลมและเรียงลำดับจาก 1 ถึง n ตามเข็มนาฬิกา อย่างเป็นทางการมากขึ้น การย้ายตามเข็มนาฬิกาจากเพื่อน ith นำคุณไปที่ ...

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

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

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

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

เปลี่ยนตัวอักษร โซลูชัน LeetCode

จดหมายแจ้งปัญหาข้อความแจ้งว่าเราได้ให้สตริง s และการเปลี่ยนอาร์เรย์ ตอนนี้สำหรับแต่ละกะ[i] = x เราต้องการเลื่อนตัวอักษร i + 1 ตัวแรกของ s, x คูณ เราต้องคืนสตริงสุดท้ายหลังจากใช้กะทั้งหมดแล้ว ตัวอย่างที่ 1: อินพุต: s = “abc” เลื่อน …

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

Jump Game IV โซลูชัน LeetCode

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

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

โซลูชั่น 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 ดังนั้นเราสามารถพิจารณาค่าคงที่ได้

 

 

 

 

 

 

สวอปขั้นต่ำเพื่อรวมโซลูชัน Leetcode เข้าด้วยกันทั้งกลุ่ม

คำชี้แจงปัญหา ค่าสวอปขั้นต่ำเพื่อจัดกลุ่มโซลูชัน Leetcode ของทั้ง 1 กลุ่ม – กล่าวว่า จากข้อมูลอาร์เรย์แบบไบนารี ให้คืนค่าจำนวนสวอปขั้นต่ำที่จำเป็นในการจัดกลุ่ม 1 รายการทั้งหมดที่มีอยู่ในอาร์เรย์รวมกันในตำแหน่งใดก็ได้ในอาร์เรย์ Input: data = [1,0,1,0,1] เอาต์พุต: 1 คำอธิบาย: มี 3 วิธีในการจัดกลุ่มทั้งหมด …

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

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

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

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

จุดนัดพบที่ดีที่สุด โซลูชัน LeetCode

คำชี้แจงปัญหา: จุดนัดพบที่ดีที่สุด โซลูชัน Leetcode กล่าวว่า – กำหนดตารางกริดไบนารีของ amxn โดยที่แต่ละ 1 ทำเครื่องหมายที่บ้านของเพื่อนหนึ่งคน ให้คืนค่าระยะทางการเดินทางทั้งหมดขั้นต่ำ ระยะทางการเดินทางทั้งหมดเป็นผลรวมของระยะทางระหว่างบ้านของเพื่อนและจุดนัดพบ ระยะทางคำนวณโดยใช้ระยะทางแมนฮัตตัน ...

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

โซลูชัน Leetcode รวมเส้นทางขั้นต่ำ

คำชี้แจงปัญหา ผลรวมเส้นทางขั้นต่ำ โซลูชัน LeetCode – “ผลรวมเส้นทางขั้นต่ำ” ระบุว่าตาราง anxm ที่ประกอบด้วยจำนวนเต็มที่ไม่เป็นลบ และเราจำเป็นต้องค้นหาเส้นทางจากบนซ้ายไปล่างขวา ซึ่งจะลดผลรวมของตัวเลขทั้งหมดตามเส้นทาง . เราทำได้แค่ขยับ…

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

Translate »