Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. โปรแกรมรวม intervals และเรียงลำดับใน Python

    สมมติว่ามีรายการ intervals ต้องการหา union ของพวกเขาเรียงตามลำดับ ตัวอย่าง: inv = [[2,5],[4,10],[20,25]] ผลลัพธ์ [[2,10],[20,25]] ขั้นตอนการแก้ปัญหา เรียง intervals ans = [] วน s, e ใน intervals: ถ้า ans และ s <= ans[-1][1]: ans[-1][1] = max(ans[-1][1], e) มิฉะนั้น: เพิ่ม [

  2. โปรแกรมตรวจสอบ global และ local inversions เท่ากันหรือไม่ใน Python

    สมมติว่ามีรายการตัวเลขไม่ซ้ำ nums Global inversion คือ inums[j] Local inversion คือ i และ i+1 ที่ nums[i+1] ต้องการตรวจสอบว่าจำนวน global = local หรือไม่ ตัวอย่าง: nums = [3,2,4] ผลลัพธ์ True index 0,1 เป็นทั้ง global และ local ขั้นตอนการแก้ปัญหา l = len(nums) วน i จาก 0 ถึง l-3: ว

  3. โปรแกรมนับสมาชิกใน A ที่น้อยกว่าอย่างน้อย k สมาชิกใน B ใน Python

    สมมติว่ามีรายการ A, B และค่า k ต้องการนับจำนวนสมาชิกใน A ที่น้อยกว่าอย่างน้อย k สมาชิกใน B ตัวอย่าง: A = [6,-2,100,11], B = [33,6,30,8,14], k=3 ผลลัพธ์ 3 คือ -2, 6, 11 ขั้นตอนการแก้ปัญหา ถ้า k == 0: คืน len(A) เรียง B จากมากไปน้อย ct = 0 วนแต่ละ i ใน A: ถ้า i < B[k-1] เพิ่ม ct คืน ct

  4. โปรแกรมหาสับลิสต์ขนาด ≥2 ที่ผลรวมหาร k ลงตัวใน Python

    สมมติว่ามีรายการตัวเลขไม่ติดลบ nums และ 0 ต้องการตรวจสอบว่ามี subarray ความยาว ≥ 2 ที่ผลรวมหาร k ลงตัวหรือไม่ ตัวอย่าง: nums = [12,6,3,4], k=5 ผลลัพธ์ True subarray [12,3] ผลรวม 15 หาร 5 ลงตัว ขั้นตอนการแก้ปัญหา sum = 0, m = {0: -1} วน i จาก 0 ถึง len(nums)-1: sum = (sum + nums[i]

  5. โปรแกรมหา k สับลิสต์ผลรวมมากสุดและคืนผลรวมเรียงน้อยไปมากใน Python

    สมมติว่ามีรายการตัวเลข nums และค่า k ต้องการหา k สับลิสต์ที่ผลรวมมากสุด คืนผลรวมเรียงจากน้อยไปมาก ตัวอย่าง: nums = [2,4,5,-100,12,-30,6,-2,6], k=3 ผลลัพธ์ [10,11,12] จากสับลิสต์ [6,-2,6], [2,4,5], [12] ขั้นตอนการแก้ปัญหา สร้าง prefix sum ps ขนาด len(nums)+1 ใช้ max-heap (เก็บค่าลบ) เก็บผลรวมท

  6. โปรแกรมหาขั้นตอนน้อยสุดของม้าไปยังเป้าหมายใน Python

    สมมติว่ามีพิกัด r, c ม้าอยู่ที่ (0,0) บนกระดานอันิเมต ต้องการหาขั้นตอนน้อยสุดไป (r,c) ตัวอย่าง: r=6, c=1 ผลลัพธ์ 3 ขั้นตอนการแก้ปัญหา ถ้า r < c: สลับ กรณีพิเศษ: (1,0) คืน 3, (2,2) คืน 4 delta = r - c ถ้า delta: คืน delta - 2 * ((delta - c) // 3) มิฉะนั้น: คืน delta - 2 * ((delta - c) /

  7. โปรแกรมหาเปอร์เซ็นต์โอกาสที่ม้าจะอยู่ในกระดานหลังเดิน k ขั้นใน Python

    กำหนด n, x, y, k กระดานหมากรุก n x n ม้าอยู่ที่ (x,y) เดินสุ่ม 8 ทิศทาง k ขั้น หาเปอร์เซ็นต์โอกาส (ปัดจำนวนเต็ม) ที่ม้าอยู่ในกระดานหลัง k ขั้น หากออกนอกแล้วไม่กลับเข้ามา ตัวอย่าง: n=8, x=1, y=1, k=1 ผลลัพธ์ 50% (4 ใน 8 ทิศทางอยู่ในกระดาน) ขั้นตอนการแก้ปัญหา รายการ 8 ทิศทางของม้า ฟังก์ชัน dfs(

  8. โปรแกรมหาความต่างระหว่างโหนดและลูกหลานใน Python

    สมมติว่ามี binary tree ต้องการหาความต่างสัมบูรณ์มากที่สุดระหว่างโหนดกับลูกหลานของมัน ตัวอย่าง: ต้นไม้ที่มีโหนด 8 และ 1 ความต่าง 7 ขั้นตอนการแก้ปัญหา ฟังก์ชัน dfs(node) คืน [min_val, max_val] ของ subtree: ถ้า node ว่าง: คืน [inf, -inf] left = dfs(node.left), right = dfs(node.rig

  9. โปรแกรมหาคู่ระยะไกลสุดจากสองลิสต์ตัวเลขใน Python

    สมมติว่ามีรายการตัวเลข A และ B ความยาวเท่ากัน ต้องการหาค่าสูงสุดของ |a[i]-a[j]| + |b[i]-b[j]| + |i-j| สำหรับทุก 0 ≤ i < j < n ตัวอย่าง: A = [2,4,10,6], B = [3,4,7,5] ผลลัพธ์ 14 ที่ i=0, j=2: |2-10|+|3-7|+|0-2| = 8+4+2=14 ขั้นตอนการแก้ปัญหา ans = 0, n = len(a) วน 4 กรณีเครื่องหมาย (s,t) in [(-

  10. โปรแกรมหาพื้นที่เกาะใหญ่สุดในเมทริกซ์ใน Python

    สมมติว่ามี binary matrix 1 = บก, 0 = น้ำ เกาะคือกลุ่ม 1 ที่ติดกัน 4 ทิศทาง ต้องการพื้นที่เกาะใหญ่สุด ตัวอย่าง: เมทริกซ์ 6x7 ผลลัพธ์ 6 ขั้นตอนการแก้ปัญหา ฟังก์ชัน dfs(matrix, r, c): total += 1, matrix[r][c] = 0 เรียกซ้ำ 4 ทิศทางถ้าเป็น 1 r_len, c_len = ขนาดเมทริกซ์, ma

  11. โปรแกรมหาผลรวมสับลิสต์ใหญ่สุด K ตัวใน Python

    สมมติว่ามีรายการตัวเลข nums และค่า k แทนการต่อ nums ซ้ำ k ครั้ง ต้องการหาผลรวมสับลิสต์ติดกันมากสุด ตัวอย่าง: nums = [2, 4, 5, -4], k = 1 ผลลัพธ์ 11 เลือก [2, 4, 5] ขั้นตอนการแก้ปัญหา s = ans = lo = 0 วน min(k, 2) รอบ: วนแต่ละ x ใน nums: s += x lo = min(

  12. โปรแกรมหาผลรวมองค์ประกอบไม่ติดกันใน circular list ใน Python

    สมมติว่ามีรายการตัวเลข nums แทน circular list ต้องการหาผลรวมมากสุดของตัวเลขที่ไม่ติดกัน ตัวอย่าง: nums = [10, 3, 4, 8] ผลลัพธ์ 14 เลือก 10 และ 4 (ไม่สามารถเลือก 10 และ 8 ได้เพราะติดกันแบบ circular) ขั้นตอนการแก้ปัญหา n = len(nums) nums1 = nums[:n-1] (ไม่รวมตัวสุดท้าย), nums2 = nums[1:] (ไม่รว

  13. โปรแกรมหาอิฐน้อยสุดสร้าง k หอคอยสูงเท่ากันใน Python

    สมมติว่ามีรายการความสูงหอคอย heights และค่า k ต้องการเลือก k หอคอยและเติมอิฐให้สูงเท่ากัน ใช้อิฐน้อยที่สุด ตัวอย่าง: heights = [5, 8, 32, 15, 41], k = 3 ผลลัพธ์ 17 เลือก 5, 8, 15 ใช้ 17 อิฐ ขั้นตอนการแก้ปัญหา เรียง heights ans = inf, s = 0 วน i, x ใน enumerate(heights): s += x

  14. โปรแกรมตรวจสอบว่ามี permutation ที่มากกว่าหรือน้อยกว่า lexicographically ระหว่างสองสตริงใน Python

    สมมติว่ามีสตริง s และ t ความยาวเท่ากัน ต้องการตรวจสอบว่ามี permutation s1 ของ s และ t1 ของ t ที่ทำให้ s1[i] <= t1[i] สำหทุก i หรือ t1[i] <= s1[i] สำหทุก i ตัวอย่าง: s = vyx, t = wzx ผลลัพธ์ True เลือก s1 = vxy, t1 = wxz ขั้นตอนการแก้ปัญหา ถ้า s และ t ว่าง: คืน True เรียง s และ t ฟังก์ชัน ut

  15. โปรแกรมหาสตริง non-palindrome เล็กสุดตามลำดับเล็กซิโครกราฟิกใน Python

    สมมติว่ามีสตริง s ที่เป็น palindrome ต้องเปลี่ยนตัวอักษร 1 ตัว ให้ s ไม่เป็น palindrome และเล็กสุดตามลำดับเล็กซิโครกราฟิก ตัวอย่าง: s = level ผลลัพธ์ aevel เปลี่ยน l ตัวแรกเป็น a ขั้นตอนการแก้ปัญหา วน i จาก 0 ถึง len(s)//2 - 1: ถ้า s[i] != a: แปลง s เป็น list, s[i] = a, คืน join(s)

  16. โปรแกรมตรวจสอบจุดเป็นเส้นตรงหรือไม่ใน Python

    สมมติว่ามีรายการพิกัด coordinates ในระนาบ Cartesian ต้องการตรวจสอบว่าจุดเหล่านี้อยู่บนเส้นตรงเดียวกันหรือไม่ ตัวอย่าง: coordinates = [[5,5],[8,8],[9,9]] ผลลัพธ์ True ความชัน 1 ขั้นตอนการแก้ปัญหา (x0, y0) = coordinates[0], (x1, y1) = coordinates[1] วน i จาก 2 ถึง len(coordinates)-1:

  17. โปรแกรมลบการปรากฏครั้งสุดท้ายของ target ใน linked list ใน Python

    สมมติว่ามี singly linked list และค่า target ต้องการลบโหนดที่มีค่า target ครั้งสุดท้าย ตัวอย่าง: [5,4,2,6,5,2,3,2,4,5,4,7], target = 5 ผลลัพธ์ [5,4,2,6,5,2,3,2,4,4,7] ขั้นตอนการแก้ปัญหา head = node, k = None, prev = None, found = False วนลูปผ่านลิสต์: ถ้า node.val == target: found =

  18. โปรแกรมหา folded list จาก linked list ใน Python

    สมมติว่ามี linked list ต้องนำครึ่งแรกมาพับทับครึ่งหลัง แล้วรวมโหนดที่ทับกันโดยบวกค่า คืน head ของลิสต์ผลลัพธ์ ตัวอย่าง: [5,8,1,2,4,7,5] ผลลัพธ์ [2,5,15,10] ขั้นตอนการแก้ปัญหา นับความยาว temp t = temp // 2, ใช้ stack เก็บค่าครึ่งแรก เดิน t ขั้น: push ค่าเข้า stack, ตัด link, ขยับ m node =

  19. โปรแกรมหาจุดตัดของ linked list 2 ตัวใน Python

    สมมติว่ามี linked list เรียงแล้ว L1 และ L2 ต้องการสร้าง linked list ใหม่ที่เป็น intersection (ค่าที่ปรากฏในทั้งสอง) ตัวอย่าง: L1 = [2,4,8], L2 = [3,4,8,10] ผลลัพธ์ [4,8] ขั้นตอนการแก้ปัญหา head = cur = ListNode(0) วนลูป بينما l1 และ l2 ไม่ว่าง: ถ้า l1.val < l2.val: l1 = l1.next

  20. โปรแกรมจัดเรียงโหนด linked list ตามค่า k ใน Python

    สมมติว่ามี singly linked list และค่า k ต้องจัดเรียงโหนด: ค่าน้อยกว่า k ก่อน, เท่ากับ k กลาง, มากกว่า k ท้าย โดยรักษาลำดับสัมพัทธ์เดิม ตัวอย่าง: L = [4,3,6,6,6,10,8], k = 6 ผลลัพธ์ [4,3,6,6,6,10,8] ขั้นตอนการแก้ปัญหา สร้าง dummy head 3 ตัว: less_head, equal_head, greater_head วน cur ผ่านลิสต์:

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