Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. โปรแกรมแปลง linked list เป็น zig-zag binary tree ใน Python

    สมมติว่ามี singly linked list ต้องแปลงเป็น binary tree ตามกติกา: หัวเป็นราก, โหนดถัดไปเป็นลูกซ้ายถ้าค่าน้อยกว่าพาเรนต์ มิฉะนั้นเป็นลูกขวา ตัวอย่าง: [2,1,3,4,0,5] สร้างต้นไม้ตามรูป ขั้นตอนการแก้ปัญหา ฟังก์ชัน solve(node): ถ้า node ว่าง: คืน None root = TreeNode(node.val) ถ

  2. โปรแกรมหา union ของ linked list 2 ตัวที่เรียงแล้วใน Python

    สมมติว่ามี linked list เรียงแล้ว L1 และ L2 ต้องการคืน linked list ใหม่ที่เรียงแล้วเป็น union ของทั้งสอง ตัวอย่าง: L1 = [10,20,30,40,50,60,70], L2 = [10,30,50,80,90] ผลลัพธ์ [10,20,30,40,50,60,70,80,90] ขั้นตอนการแก้ปัญหา ฟังก์ชัน solve(L1, L2) แบบ recursive: ถ้า L1 ว่าง: คืน L2

  3. โปรแกรมหา 1s ติดกันมากสุดหลังสลับคู่บิตเดียวใน Python

    สมมติว่ามีสตริงไบนารี s สามารถสลับคู่ตัวอักษรได้สูงสุด 1 คู่ ต้องการหาความยาว substring 1s ติดกันมากสุดหลังสลับ ตัวอย่าง: s = 1111011111 ผลลัพธ์ 9 สลับ s[4] กับ s[9] ได้ 9 ตัว 1 ติดกัน ขั้นตอนการแก้ปัญหา l = 0, cnt = 0, ans = 0 วน r จาก 0 ถึง len(s)-1: cnt += (s[r] == 0) ถ้า

  4. โปรแกรมหาความยาว Fibonacci subsequence ยาวสุดใน Python

    สมมติว่ามีรายการตัวเลขบวกเพิ่มขึ้นเคร่งครัด nums ต้องการหาความยาว subsequence ยาวสุด (ขั้นต่ำ 3) ที่ A[i] = A[i-1] + A[i-2] สำหรับทุก 1 ตัวอย่าง: nums = [1,2,3,4,5,6,7,8,9,10,11,12,13,14] ผลลัพธ์ 6 คือ [1,2,3,5,8,13] ขั้นตอนการแก้ปัญหา A = nums, n = len(A), maxLen = 0 S = set(A) วน i จาก 0

  5. โปรแกรมหาช่วงเวลายาวสุดจากการรวม intervals ทับซ้อนใน Python

    สมมติว่ามีรายการ intervals แบบ [start, end] ต้องการหาช่วงเวลายาวสุดที่ได้จากการรวม intervals ที่ทับซ้อนกัน ตัวอย่าง: [[1,6],[4,9],[5,6],[11,14],[16,20]] ผลลัพธ์ 9 รวมได้ [1,9] ความยาว 9 ขั้นตอนการแก้ปัญหา เรียง intervals union = intervals[0], best = union[1] - union[0] + 1 วน s, e ใน interv

  6. โปรแกรมหาความยาว subsequence สลับเครื่องหมายมากสุดใน Python

    สมมติว่ามีรายการตัวเลข nums ต้องการหาความยาว subsequence ยาวสุดที่เครื่องหมายสลับกันทุกคู่ติดกัน ตัวอย่าง: nums = [1, 3, -6, 4, -3] ผลลัพธ์ 4 เลือก [1, -6, 4, -3] ขั้นตอนการแก้ปัญหา pos = 0, neg = 0 (ความยาว subsequence จบด้วยบวก/ลบ) วนแต่ละ n ใน nums: ถ้า n < 0: neg = pos + 1

  7. โปรแกรมหาความยาวสับลิสต์เพิ่มแล้วลดมากสุดใน Python

    สมมติว่ามีรายการตัวเลข nums ต้องการหาความยาวสับลิสต์ยาวสุด (ขั้นต่ำ 3) ที่เพิ่มขึ้นเคร่งครัดแล้วลดลงเคร่งครัด ตัวอย่าง: nums = [8, 2, 4, 6, 3, 1] ผลลัพธ์ 5 สับลิสต์ [2, 4, 6, 3, 1] ขั้นตอนการแก้ปัญหา i = 0, n = len(a), res = -inf วนลูป بينما i < n-2: st = i, linc = 0, ldec = 0

  8. โปรแกรมหาความยาว 1s ติดกันมากสุดหลังกลับบิต k ตัวใน Python

    สมมติว่ามีรายการไบนารี (0 และ 1) และตัวเลข k สามารถเปลี่ยน 0 เป็น 1 ได้สูงสุด k ตัว ต้องการหาความยาวสับลิสต์ยาวสุดที่เป็น 1 ทั้งหมด ตัวอย่าง: nums = [0, 1, 1, 0, 0, 1, 1], k = 2 ผลลัพธ์ 6 เปลี่ยน 0 กลาง 2 ตัวได้ [0, 1, 1, 1, 1, 1, 1] ขั้นตอนการแก้ปัญหา zeros = 0, ans = 0, j = 0 วน i, n ใน enu

  9. โปรแกรมหาความยาวสับลิสต์ยาวสุดที่ความต่าง min-max ≤ k ใน Python

    สมมติว่ามีรายการตัวเลข nums และค่า k ต้องการหาความยาวสับลิสต์ (subarray) ยาวที่สุดที่ความต่างสัมบูรณ์ระหว่างค่ามากที่สุดและน้อยที่สุด ≤ k ตัวอย่าง: nums = [2, 4, 6, 10], k = 4 ผลลัพธ์ 3 เลือก [2, 4, 6] ความต่าง 4 ขั้นตอนการแก้ปัญหา ใช้ deque 2 ตัว: maxd (เก็บค่ามากสุด), mind (เก็บค่าน้อยสุด)

  10. โปรแกรมหาความยาวสตริงยาวที่สุดที่ทุกตัวอักษรเกิดขึ้นอย่างน้อย k ครั้งใน Python

    สมมติว่ามีสตริง s ที่ตัวอักษรเรียงแล้ว และตัวเลข k ต้องการหาความยาว substring ยาวที่สุดที่ทุกตัวอักษรเกิดขึ้น ≥ k ครั้ง ตัวอย่าง: s = aabccddeeffghij, k = 2 ผลลัพธ์ 8 substring คือ ccddeeff ขั้นตอนการแก้ปัญหา ฟังก์ชัน rc(lst) แบบ recursive: นับความถี่ c ของทุกตัวอักษร acc = [],

  11. โปรแกรมหาพจน์ที่ n ของลำดับ Look and Say ใน Python

    ลำดับ Look and Say เริ่มจาก 1 แต่ละพจน์อธิบายพจน์ก่อนหน้า: 1, 11 (หนึ่ง 1), 21 (สอง 1), 1211 (หนึ่ง 2 หนึ่ง 1), 111221 (หนึ่ง 1 หนึ่ง 2 สอง 1)... ต้องการพจน์ที่ n (1 ≤ n ≤ 30) ขั้นตอนการแก้ปัญหา s = 1 ถ้า n == 1 คืน s วน i จาก 2 ถึง n: j = 0, temp = , curr = , count = 0 วนลู

  12. Nested List Weight Sum II ใน Python

    กำหนด nested list ของจำนวนเต็ม ต้องการหาผลรวมของทุกจำนวนถ่วงน้ำหนักตามความลึก แต่น้ำหนักนับจากใบขึ้นไปราก (bottom-up) คือ ใบมีน้ำหนัก 1 รากมีน้ำหนักมากที่สุด ตัวอย่าง: [[1,1],2,[1,1]] ผลลัพธ์ 8 สี่ตัว 1 ที่ความลึก 1, ตัว 2 ที่ความลึก 2 ขั้นตอนการแก้ปัญหา ฟังก์ชัน depthSumInverse(nestedList) f

  13. โปรแกรมหาผลรวมคู่ต่ำสุดที่มากกว่าเป้าหมายใน Python

    สมมติว่ามีรายการตัวเลข nums และค่า target ต้องการหาผลรวมของคู่ตัวเลขที่น้อยที่สุดแต่มากกว่า target ตัวอย่าง: nums = [2, 4, 6, 10, 14], target = 10 ผลลัพธ์คือ 12 เลือก 2 และ 10 ขั้นตอนการแก้ปัญหา เรียง nums n = len(nums), answer = 10**10 i = 0, j = n-1 วนลูป بينما i < j: ถ้า ta

  14. โปรแกรมหา ID ผู้สมัครที่ได้เสียงส่วนใหญ่ใน Python

    สมมติว่ามีรายการตัวเลข nums ความยาว n แต่ละตัวแทนเสียง ต้องการหา ID ผู้สมัครที่ได้เสียงมากกว่า floor(n/2) หากไม่มีคืน -1 ตัวอย่าง: nums = [6, 6, 2, 2, 3, 3, 3, 3, 3] ผลลัพธ์คือ 3 ขั้นตอนการแก้ปัญหา l = len(nums) นับความถี่ด้วย Counter วนแต่ละค่า i และจำนวน j: ถ้า l//2: คืน i

  15. โปรแกรมนับจำนวนวิธีทำเงินทอนถึงเป้าหมายใน Python

    สมมติว่ามีรายการเหรียญ coins และค่า amount ต้องการหาจำนวนวิธีรวมเป็น amount หากมากมาย mod 10^9+7 ตัวอย่าง: coins = [2, 5], amount = 10 ผลลัพธ์ 2 วิธี: [2,2,2,2,2], [5,5] ขั้นตอนการแก้ปัญหา m = 10**9 + 7 dp ขนาด amount+1 เติม 0, dp[0] = 1 วนแต่ละเหรียญ d: วน i จาก 1 ถึง amount:

  16. โปรแกรมสร้างเมทริกซ์ระยะแมนฮัตตันจาก 0 ใกล้ที่สุดใน Python

    สมมติว่ามีเมทริกซ์ไบนารี ต้องการสร้างเมทริกซ์เดียวกันแต่แต่ละเซลล์เป็นระยะแมนฮัตตันไปยัง 0 ใกล้ที่สุด สมมติว่ามี 0 อย่างน้อย 1 ตัว ตัวอย่าง: [[1,0,1],[1,0,1],[1,1,0]] ผลลัพธ์ [[1,0,1],[1,0,1],[2,1,0]] ขั้นตอนการแก้ปัญหา m, n = ขนาดเมทริกซ์ ผ่าน 2 รอบ (top-left to bottom-right): ถ้า

  17. โปรแกรมหาตัวเลขน้อยสุดอันดับ n จากเมทริกซ์ใน Python

    สมมติว่ามีเมทริกซ์ 2D ที่แต่ละแถวและคอลัมน์เรียงจากน้อยไปมาก ต้องการหาตัวเลขน้อยสุดอันดับ n ตัวอย่าง: เมทริกซ์เดียวกัน n = 4 ผลลัพธ์คือ 6 ขั้นตอนการแก้ปัญหา รวมทุกค่าในเมทริกซ์เข้า list lst เรียง lst คืน lst[n] ตัวอย่างโค้ด class Solution: def solve(self, matrix, n): lst = []

  18. โปรแกรมค้นหาค่าเป้าหมายในเมทริกซ์ใน Python

    สมมติว่ามีเมทริกซ์ 2D ที่แต่ละแถวและคอลัมน์เรียงจากน้อยไปมาก ต้องการตรวจสอบว่ามีค่า target อยู่ในเมทริกซ์หรือไม่ ตัวอย่าง: เมทริกซ์ [[2,4,30],[3,4,31],[6,6,32]], target = 31 ผลลัพธ์ True ขั้นตอนการแก้ปัญหา เริ่มจากมุมขวาบน: col = จำนวนคอลัมน์ - 1 วนลูปแต่ละแถว i: ขณะ target และ =

  19. โปรแกรมหาคะแนนบวกสูงสุดจากการลบตัวเลขใน Python

    สมมติว่ามีรายการตัวเลข nums ดำเนินการเลือกตัวเลข (ไม่ใช่ตัวแรกหรือตัวสุดท้าย) ลบออก และเพิ่มคะแนนเท่ากับผลรวมของตัวเลขนั้นและสองตัวข้างเคียง ทำได้หลายครั้ง ต้องการคะแนนสูงสุด ตัวอย่าง: nums = [2, 3, 4, 5, 6] ผลลัพธ์คือ 39 เลือก 5 ได้ 15, เลือก 4 ได้ 13, เลือก 3 ได้ 11 รวม 39 ขั้นตอนการแก้ปัญหา

  20. โปรแกรมหาผลรวมสูงสุดจากการลบ K ตัวจากปลายทั้งสองใน Python

    สมมติว่ามีรายการตัวเลข nums และค่า k ต้องการหาผลรวมสูงสุดของสมาชิกที่ลบได้ โดยต้องลบพอดี k ครั้ง แต่ละครั้งลบจากซ้ายหรือขวาได้ ตัวอย่าง: nums = [2, 4, 5, 3, 1], k = 2 ผลลัพธ์คือ 6 ลบ 2 และ 4 ขั้นตอนการแก้ปัญหา window = sum(nums[:k]) (ลบ k ตัวแรก) ans = window วน i จาก 1 ถึง k: wi

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:191/451  20-คอมพิวเตอร์/Page Goto:1 185 186 187 188 189 190 191 192 193 194 195 196 197