Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. โปรแกรมหาผลรวมสูงสุดของสองสับลิสต์ไม่ทับซ้อนใน Python

    สมมติว่ามีรายการตัวเลข nums และค่า x, y ต้องการหาผลรวมสูงสุดของสองสับลิสต์ไม่ทับซ้อนที่มีความยาว x และ y ตัวอย่าง: nums = [3, 2, 10, -2, 7, 6], x = 3, y = 1 ผลลัพธ์คือ 22 เลือก [3, 2, 10] (ความยาว 3) และ [7] (ความยาว 1) ขั้นตอนการแก้ปัญหา สร้าง prefix sum P เริ่มจาก 0 ฟังก์ชัน solve(len1, len

  2. โปรแกรมเติมค่า Min-max game tree ใน Python

    สมมติว่ามีต้นไม้แบบทวิภาคแทนสถานะเกม 2 คน โหนดภายในเติม 0 ใบไม้คือคะแนนจบเกม ผู้เล่น 1 ต้องการเพิ่มคะแนน (max) ผู้เล่น 2 ต้องการลดคะแนน (min) ผู้เล่น 1 เล่นที่ระดับคู่ ผู้เล่น 2 เล่นที่ระดับคี่ ต้องเติมค่าต้นไม้สมมติทั้งคู่เล่นอย่างเหมาะสม ขั้นตอนการแก้ปัญหา ฟังก์ชัน helper(root, h, currentHeigh

  3. โปรแกรมหาจำนวนการดำเนินการน้อยที่สุดเพื่อทำให้ลิสต์เพิ่มขึ้นอย่างเคร่งครัดใน Python

    สมมติว่ามีรายการตัวเลข A และ B ความยาวเท่ากัน สามารถสลับ A[i] กับ B[i] ได้ ต้องการหาจำนวนการสลับน้อยที่สุดเพื่อให้ทั้งสองรายการเพิ่มขึ้นอย่างเคร่งครัด (strictly increasing) ตัวอย่าง: A = [2, 8, 7, 10], B = [2, 4, 9, 10] ผลลัพธ์คือ 1 สลับ 7 กับ 9 ได้ A = [2, 8, 9, 10], B = [2, 4, 7, 10] ขั้นตอนการแ

  4. โปรแกรมหาสองคู่ตัวเลขที่ความต่างผลรวมน้อยที่สุดใน Python

    สมมติว่ามีรายการตัวเลข nums ต้องการเลือกสองคู่ตัวเลข ที่ความต่างสัมบูรณ์ของผลรวมสองค้ือนั้นน้อยที่สุด ตัวอย่าง: nums = [3, 4, 5, 10, 7] ผลลัพธ์คือ 1 เลือกคู่ (3+7) และ (4+5) ความต่าง = 1 ขั้นตอนการแก้ปัญหา สร้างรายการ distances เก็บ (|nums[i]-nums[j]|, i, j) สำหรับทุกคู่ i < j เรียง distances

  5. โปรแกรมหาผลรวม subsequence ต่ำสุดโดยเลือกอย่างน้อย 1 จาก 3 ติดกันใน Python

    สมมติว่ามีรายการตัวเลข nums ต้องการหา subsequence ที่ผลรวมน้อยที่สุด โดยต้องเลือกอย่างน้อย 1 ตัวจากทุก 3 ตัวติดกัน หากความยาว < 3 ก็ต้องเลือกอย่างน้อย 1 ตัว ตัวอย่าง: nums = [2, 3, 4, 5, 6, 7] ผลลัพธ์คือ 7 เลือก 2 และ 5 ขั้นตอนการแก้ปัญหา n = len(nums) กรณีฐาน: n=0 คืน 0, n=1 คืน nums[0], n=2

  6. โปรแกรมหาผลรวมต้นไม้ต่ำสุดจากรายการใบไม้ใน Python

    สมมติว่ามีรายการตัวเลข nums แทนโหนดใบ (leaves) ใน inorder traversal โหนดภายในมี 2 ลูก และค่าเท่ากับผลคูณของค่าใบมากที่สุดในซ้ายและขวา ต้องการหาผลรวมของต้นไม้ที่มีผลรวมต่ำสุด ตัวอย่าง: nums = [3, 5, 10] ผลลัพธ์คือ 83 ขั้นตอนการแก้ปัญหา res = sum(nums) วนลูป بينما 1: i = index ของค่

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

    สมมติว่ามีรายการตัวเลข nums และค่า k ดำเนินการเพิ่มค่าสมาชิกทีละ 1 ได้สูงสุด k ครั้ง ต้องการหาค่าที่เกิดบ่อยที่สุดที่ทำได้ หากมีหลายค่า ให้เลือกค่าน้อยที่สุด ตัวอย่าง: nums = [1, 0, 0, 0, 8, 8, 8, 8], k = 8 ผลลัพธ์คือ 8 เพราะเพิ่ม 1 เป็น 8 (7 ครั้ง) และเพิ่ม 0 หนึ่งตัวเป็น 1 ได้ [8, 1, 0, 0, 8, 8,

  8. โปรแกรมหาจำนวนโรงหนังขั้นต่ำสำหรับแสดงภาพยนตร์ทั้งหมดใน Python

    สมมติว่ามีรายการช่วงเวลา (intervals) ของการฉายหนัง (อาจทับซ้อนกัน) ต้องการหาจำนวนโรงหนังขั้นต่ำที่จำเป็นเพื่อฉายหนังทั้งหมด ตัวอย่าง: intervals = [[20, 65], [0, 40], [50, 140]] ผลลัพธ์คือ 2 เพราะ [20, 65] ทับกับ [0, 40] และ [50, 140] แต่ [0, 40] กับ [50, 140] ไม่ทับกัน ขั้นตอนการแก้ปัญหา สร้างร

  9. โปรแกรมนับจำนวนการจัดหมู่ที่ผลรวมเท่ากับ k ใน Python

    สมมติว่ามีรายการตัวเลขที่ไม่ซ้ำกัน nums และตัวเลข k ต้องการหาจำนวนการจัดหมู่ (combinations) ที่ผลรวมเท่ากับ k สามารถนำตัวเลขซ้ำใช้ได้ ตัวอย่าง: nums = [2, 4, 5], k = 4 ผลลัพธ์คือ 2 กลุ่มคือ [2, 2] และ [4] ขั้นตอนการแก้ปัญหา สร้าง table ขนาด k+1 เติม 0, ตั้ง table[0] = 1 วนลูปแต่ละ num ใน nums

  10. โปรแกรมสร้างตัวเลข n ตัวแรกในลำดับเล็กซิโครกราฟิกใน Python

    สมมติว่ามีตัวเลข n ต้องการหาตัวเลข n ตัวแรกที่เรียงตามลำดับเล็กซิโครกราฟิก (lexicographic order) ตัวอย่าง: n = 15 ผลลัพธ์คือ [1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9] ขั้นตอนการแก้ปัญหา count = 1, ans = [count] วนลูป بينما len(ans) < n: count *= 10 วนลูป بينما n:

  11. โปรแกรมหาสตริงเล็กสุดตามลำดับเล็กซิโครกราฟิกความยาว n ตัวที่ k ใน Python

    สมมติว่ามีตัวเลข n และ k พิจารณาสตริงที่ประกอบด้วย 0, 1, 2 เท่านั้น โดยไม่มีตัวอักษรซ้ำติดกัน ต้องการหาสตริงตัวที่ k ในลำดับเล็กซิโครกราฟิก หากไม่มีคืนสตริงว่าง ตัวอย่าง: n = 4, k = 2 ผลลัพธ์คือ 0120 ขั้นตอนการแก้ปัญหา สร้างฟังก์ชัน solve(s, k, last) แบบ recursive: ถ้า s == 0 คืน

  12. โปรแกรมหาตัวเลขไม่เกิน n ที่หลักต่างๆ ไม่ลดลงใน Python

    สมมติว่ามีตัวเลข n ต้องการหาตัวเลขที่มากที่สุดแต่น้อยกว่าหรือเท่า n โดยที่ทุกหลักเป็น non-decreasing (ไม่ลดลงจากซ้ายไปขวา) ตัวอย่าง: n = 221 ผลลัพธ์คือ 199 ขั้นตอนการแก้ปัญหา แปลง n เป็นรายการหลัก digits bound = None วนลูปจากหลักท้ายไปหน้า (i = len(digits)-1 ถึง 1): ถ้า digits[i]

  13. โปรแกรมนับคู่เศษส่วนที่ผลรวมเท่ากับ 1 ใน Python

    สมมติว่ามีรายการเศษส่วน แต่ละอันเป็นรายการ [numerator, denominator] แทนค่า numerator/denominator ต้องการหาจำนวนคู่ที่ผลรวมเท่ากับ 1 ตัวอย่าง: fractions = [[2, 7], [3, 12], [4, 14], [5, 7], [3, 4], [1, 4]] ผลลัพธ์คือ 4 คู่คือ (2/7 + 5/7), (3/12 + 3/4), (3/4 + 1/4), (4/14 + 5/7) ขั้นตอนการแก้ปัญหา

  14. โปรแกรมนับสับลิสต์ขนาด K ที่ค่าเฉลี่ยมากกว่าหรือเท่าเป้าหมายใน Python

    สมมติว่ามีรายการ nums และค่า k, target ต้องการหาจำนวนสับลิสต์ขนาด k ที่ค่าเฉลี่ยมากกว่าหรือเท่า target ตัวอย่าง: nums = [1, 10, 5, 6, 7], k = 3, target = 6 ผลลัพธ์คือ 2 สับลิสต์ [1, 10, 7] ค่าเฉลี่ย 6 และ [10, 5, 6] ค่าเฉลี่ย 7 ขั้นตอนการแก้ปัญหา ปรับ target = target * k (เปรียบเทียบผลรวมแทนค่า

  15. โปรแกรมนับจำนวนสับลิสต์ที่ผลรวมเท่ากับเป้าหมายใน Python

    สมมติว่ามีรายการตัวเลข nums และค่า target ต้องการหาจำนวนสับลิสต์ (subarrays) ที่ผลรวมเท่ากับ target ตัวอย่าง: nums = [3, 0, 3], target = 3 ผลลัพธ์คือ 4 สับลิสต์คือ [3], [3, 0], [0, 3], [3] ขั้นตอนการแก้ปัญหา สร้าง map temp ว่าง, ตั้ง temp[0] = 1 s = 0 (prefix sum), ans = 0 วนลูปแต่ละ index

  16. โปรแกรมหาจำนวนการสลับน้อยที่สุดเพื่อเรียงลำดับลำดับตัวเลขใน Python

    สมมติว่ามีรายการตัวเลขที่ไม่ซ้ำกัน ต้องการหาจำนวนการสลับ (swaps) น้อยที่สุดเพื่อเรียงลำดับจากน้อยไปมาก ตัวอย่าง: nums = [3, 1, 7, 5] ผลลัพธ์คือ 2 สลับ 3 กับ 1 แล้วสลับ 5 กับ 7 ขั้นตอนการแก้ปัญหา สร้าง sort_seq = เรียง nums สร้าง map table เก็บ index ของแต่ละค่าใน nums เดิม swaps = 0 วนลูป

  17. โปรแกรมนับโหนดลูกเพียงลูกในต้นไม้แบบทวิภาคด้วย Python

    สมมติว่ามีต้นไม้แบบทวิภาค (binary tree) ต้องการหาจำนวนโหนดที่เป็น ลูกเพียงลูก (only child) ซึ่งหมายถึงโหนดที่พาเรนต์มีลูกเพียงตัวเดียวเท่านั้น ตัวอย่าง: โครงสร้างต้นไม้ที่มีโหนด 8 และ 6 เป็นลูกเพียงลูก ผลลัพธ์คือ 2 ขั้นตอนการแก้ปัญหา ถ้า root เป็น null คืนค่า 0 ใช้คิวแบบสองหัว (deque) สำหรับ

  18. โปรแกรมหาค่าสูงสุดที่น้อยที่สุดหลังจากดำเนินการ k ครั้งใน Python

    สมมติว่ามีรายการตัวเลขชื่อ nums และค่า k ให้พิจารณาการดำเนินการที่ลบ 1 ออกจากสมาชิกใดก็ได้ในรายการ เราสามารถทำได้ k ครั้ง ต้องการหาค่าสูงสุดที่น้อยที่สุดในรายการหลังจากดำเนินการ k ครั้งดังกล่าว ตัวอย่าง: nums = [3, 4, 6, 5], k = 6 ผลลัพธ์คือ 3 เพราะสามารถลด 4 ลง 1 ครั้ง, 6 ลง 3 ครั้ง, 5 ลง 2 ครั้ง

  19. โปรแกรมสร้างสตริงทั้งหมดที่เป็นไปได้จากตัวเลือกใน Python

    สมมติว่ามีสตริง s ที่ประกอบด้วยตัวอักษรภาษาอังกฤษพิมพ์เล็ก และอักขระพิเศษ เช่น [, |, และ ] โดยรูปแบบ [a|b|c] หมายถึงสามารถเลือกได้เพียงหนึ่งใน a, b, หรือ c เท่านั้น เราต้องการหารายการสตริงทั้งหมดที่ s สามารถแทนได้ โดย [] ไม่สามารถซ้อนกันได้ และอาจมีตัวเลือกได้ไม่จำกัดจำนวน ตัวอย่างเช่น หากอินพุตคือ

  20. โปรแกรมหาจำนวนวิธีแบ่งสตริงเป็นพาลินโดรมใน Python

    มีสตริง s หาจำนวนวิธีแบ่งสตริงให้ทุกชิ้นเป็นพาลินโดรม เช่น s=xyyx ให้ 3: [x,yy,x], [x,y,y,x], [xyyx] ขั้นตอนการแก้ปัญหา DP: table[i] = จำนวนวิธีแบ่ง s[:i] table[0]=1 สำหรับ i=1..n: วน j=0..i-1 ถ้า s[j:i] เป็นพาลินโดรม table[i] += table[j] คืน table[n] ตัวอย่างโค้ด class Solution: def solve(se

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