Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. Container With Most Water ใน Python - หาพื้นที่น้ำมากที่สุด

    สมมติว่าเรามีชุดจำนวนเต็มไม่ติดลบ n ตัว a1, a2, ..., an แต่ละค่าแทนจุดที่พิกัด (i, a[i]) มีเส้นตั้ง n เส้น ที่ปลายสองข้างของเส้น i อยู่ที่ (i, a[i]) และ (i, 0) เราต้องหาสองเส้นที่ร่วมกับแกน x สร้างภาชนะ (container) ให้ปริมาตรน้ำมากที่สุด ตัวอย่าง [1,8,6,2,5,4,8,3,7] ผลลัพธ์ 49 ในส่วนที่ทับสี สูง

  2. 3Sum ใน Python - หาสามตัวเลขที่ผลรวมเป็นศูนย์

    สมมติว่าเรามีอาร์เรย์ตัวเลข เก็บ n จำนวนเต็ม มีสามองค์ประกอบ a, b, c ในอาร์เรย์ ที่ a + b + c = 0 หา unique triplets ทั้งหมดที่ตรงเงื่อนไข ตัวอย่าง [-1,0,1,2,-1,-4] ผลลัพธ์ [[-1, 1, 0], [-1, -1, 2]] ขั้นตอนการทำงาน (Two Pointers after Sorting) เรียงลำดับอาร์เรย์ nums, กำหนด res array วนลูป i จาก 0

  3. Letter Combinations of a Phone Number ใน Python - รูปแบบตัวอักษรจากหมายเลขโทรศัพท์

    สมมติว่าเรามีสตริงที่มีตัวเลข 2-9 เราต้องคืนการจัดหมู่ตัวอักษรทั้งหมดที่หมายเลขอาจแทนได้ Mapping ตัวเลขไปตัวอักษร (เหมือนปุ่มโทรศัพท์): 12a b c3d e f 4g h i5j k l6m n o 7p q r s8t u v9w x y z *0# ตัวอย่าง 23 สตริงที่เป็นไปได้: [ad,ae,af,bd,be,bf,cd,ce,cf] ขั้นตอนการทำงาน (Recursive Backtracki

  4. Remove Nth Node From End of List ใน Python - ลบโหนดที่ N จากท้าย

    สมมติว่าเรามี linked list เราต้องลบโหนดที่ N จากท้ายของลิสต์ แล้วคืน head ตัวอย่าง ลิสต์ [1,2,3,4,5,6] และ n = 3 ลิสต์ที่คืนคือ [1,2,3,5,6] ขั้นตอนการทำงาน (Two Pointers / Fast-Slow Pointer) ถ้าไม่มีโหนดหลัง head ให้คืน None front := head, back := head, counter := 0, flag := false วนลูป while coun

  5. Generate Parentheses ใน Python - สร้างวงเล็บที่ถูกต้องทั้งหมด

    สมมติว่าเรามีค่า n เราต้องสร้าง parentheses ที่ well-formed ทั้งหมดที่มีวงเล็บเปิดและปิด n คู่ ตัวอย่าง n = 3 ผลลัพธ์คือ [()()(),()(()),(())(),(()()),((()))] ขั้นตอนการทำงาน (Recursive Backtracking) กำหนดเมธอด genParenthesisRec() รับ left, right, temp string, result array เริ่มต้น result ว่าง ฟังก

  6. Search in Rotated Sorted Array ใน Python - ค้นหาในอาร์เรย์หมุน

    พิจารณาอาร์เรย์ที่เรียงจากน้อยไปมาก แล้วหมุน (rotated) ที่จุด pivot ไหนที่ไม่ทราบล่วงหน้า ตัวอย่าง [0,1,2,4,5,6,7] อาจกลายเป็น [4,5,6,7,0,1,2] ให้ค่า target ต้องค้นหา ถ้าพบคืน index มิฉะนั้นคืน -1 สมมติไม่มี duplicate ตัวอย่าง [4,5,6,7,0,1,2] target 0 ผลลัพธ์ index 4 ขั้นตอนการทำงาน (Modified Binar

  7. Find First and Last Position of Element in Sorted Array ใน Python

    สมมติว่าเรามีอาร์เรย์จำนวนเต็ม A เรียงลำดับจากน้อยไปมาก เราต้องหาตำแหน่งเริ่มต้นและสิ้นสุดของค่า target ที่กำหนด ถ้าไม่พบ target คืน [-1, -1] ตัวอย่าง อาร์เรย์ [2,2,2,3,4,4,4,4,5,5,6] target = 4 ผลลัพธ์ [4,7] (0-indexed) ขั้นตอนการทำงาน (Binary Search สองครั้ง) ตั้งค่า res := [-1,-1], low := 0, hi

  8. Valid Sudoku ใน Python - ตรวจสอบ Sudoku ถูกต้องหรือไม่

    สมมติว่าเรามีกระดาน Sudoku ขนาด 9x9 เราต้องตรวจสอบว่าถูกต้องหรือไม่ เฉพาะช่องที่กรอกแล้วเท่านั้นที่ต้องตรวจสอบตามกฎ: แต่ละแถวต้องมีตัวเลข 1-9 ไม่ซ้ำ แต่ละคอลัมน์ต้องมีตัวเลข 1-9 ไม่ซ้ำ แต่ละกล่อง 3x3 (ย่อย 9 กล่อง) ต้องมีตัวเลข 1-9 ไม่ซ้ำ ตัวอย่าง Sudoku grid ที่ถูกต้อง: 537 6195 986 863 4831

  9. Multiply Strings ใน C++ - คูณสตริงตัวเลขขนาดใหญ่

    สมมติว่าเรามีตัวเลขสองตัวเป็นสตริง เราต้องคูณพวกมันและคืนผลลัพธ์เป็นสตริงเช่นกัน ตัวอย่าง 26 และ 12 ผลลัพธ์ 312 ขั้นตอนการทำงาน (Grade School Multiplication) รับอาร์กิวเมนต์สองตัว x และ y หมายถึง x หาร y ถ้า x < -Infinity และ y = 1 คืน infinity a := |x|, b := |y|, ans := 0 วนลูป = 0: p := 0 วนลูป

  10. Permutations ใน Python - สร้าง Permutation ทั้งหมด

    สมมติว่าเรามีชุดจำนวนเต็มที่ไม่ซ้ำกัน เราต้องหา permutations ทั้งหมดที่เป็นไปได้ ตัวอย่าง อาร์เรย์ [2,1,3] ผลลัพธ์คือ [[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] ขั้นตอนการทำงาน (Recursive Backtracking with Swapping) ใช้ recursive approach ฟังก์ชันรับ list, start, curr, res ถ้า len(lis

  11. Rotate Image ใน Python - หมุนเมทริกซ์ 90 องศา

    สมมติว่าเรามีเมทริกซ์ 2D ที่แทนภาพ เราต้องหมุนภาพนี้ 90 องศาในทิศทางเข็มนาฬิกา (clockwise) ตัวอย่าง ภาพเป็น: 157 963 213 ผลลัพธ์จะเป็น: 291 165 337 ขั้นตอนการทำงาน พิจารณา temp_mat = [], col := len(matrix) - 1 วนลูป col จาก 0 ถึง len(matrix)-1: temp := [] วนลูป row จาก len(matrix)-1 ลง

  12. Group Anagrams ใน Python - จัดกลุ่มคำที่เป็น Anagram

    สมมติว่าเรามีชุดสตริง เราต้องจัดกลุ่ม anagram รวมกัน ตัวอย่าง [eat, tea, tan, ate, nat, bat] กลุ่มคือ [[ate,eat,tea],[nat,tan],[bat]] ขั้นตอนการทำงาน กำหนด res เป็น map (dictionary) วนลูป i ในอาร์เรย์สตริง: x := sorted string of i แล้ว join ถ้า x in result ใส่ i ลง result[x] มิฉะนั้น result[x] :=

  13. Pow(x, n) ใน Python - คำนวณกำลังโดยไม่ใช้ Library

    สมมติว่าเรามีอินพุตสองค่า x และ n x เป็นตัวเลขในช่วง -100.0 ถึง 100.0 และ n เป็น signed 32-bit integer เราต้องหา x^n โดยไม่ใช้ library functions ตัวอย่าง x = 12.1, n = -2 ผลลัพธ์ 0.00683 ขั้นตอนการทำงาน (Binary Exponentiation / Fast Power) power := |n| และ res := 1.0 วนลูป while power != 0: ถ้าบ

  14. Sort Colors ใน Python - เรียงสี (Dutch National Flag Problem)

    สมมติว่าเรามีอาร์เรย์ที่มี n อ็อบเจกต์ สีแดง ขาว หรือ น้ำเงิน เรียงในที่เดิม (in-place) ให้อ็อบเจกต์สีเดียวกันอยู่ติดกัน ตามลำดับสี แดง ขาว น้ำเงิน ใช้ตัวเลข 0, 1, 2 แทนสีแดง ขาว น้ำเงิน ตามลำดับ ตัวอย่าง [2,0,2,1,1,0] ผลลัพธ์ [0,0,1,1,2,2] ขั้นตอนการทำงาน (Three-way Partition / Dutch National Flag

  15. Combinations ใน C++ - หาการจัดหมู่ทั้งหมด

    สมมติว่าเรามีจำนวนเต็มสองจำนวน n และ k เราต้องหาการจัดหมู่ (combinations) ที่เป็นไปได้ทั้งหมดของ k ตัวเลขจาก 1 ... n ตัวอย่าง n = 4, k = 2 ผลลัพธ์คือ [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]] ขั้นตอนการทำงาน (Recursive Backtracking) ใช้ recursive function solve() รับ n, k, temp array, start เริ่มต้น s

  16. Decode Ways ใน Python - จำนวนวิธีถอดรหัสข้อความ

    สมมติว่าเรามีข้อความที่มีตัวอักษร A ถึง Z ถูกเข้ารหัสเป็นตัวเลขด้วย mapping: A → 1, B → 2 ... Z → 26 ถ้าเรามีสตริงไม่ว่างที่ประกอบด้วยตัวเลขเท่านั้น เราต้องหาว่าสามารถถอดรหัสได้กี่วิธี ตัวอย่าง สตริง 12 สามารถสร้างจาก AB (1, 2) หรือ L (12) ดังนั้นมี 2 วิธี ขั้นตอนการทำงาน (Dynamic Programming) แก้

  17. Binary Tree Inorder Traversal ใน Python - ท่องต้นไม้แบบทวิภาค Inorder

    สมมติว่าเรามี binary tree เราต้องท่องต้นไม้นี้ด้วย inorder traversal scheme โดยไม่ใช้ recursion ตัวอย่าง ถ้าต้นไม้เป็นแบบนี้: ลำดับการท่องจะเป็น [2, 5, 7, 10, 15, 20] ขั้นตอนการทำงาน (Iterative with Stack) สร้างอาร์เรย์ res และ stack ตั้งค่า curr := root รันลูปไม่รู้จบ: วนลูป while current is

  18. Word Break ใน Python - ตรวจสอบการแบ่งคำจาก Dictionary

    สมมติว่าเรามีสตริงไม่ว่าง s และ dictionary wordDict ที่มีรายการคำไม่ว่าง ให้กำหนดว่า s สามารถแบ่งเป็นลำดับคำจาก dictionary คั่นด้วยช่องว่างได้หรือไม่ กฎ: คำเดียวกันใน dictionary อาจใช้ซ้ำได้หลายครั้ง สมมติว่า dictionary ไม่มีคำซ้ำ ตัวอย่าง s = applepenapple และ word dictionary [apple, pen] ผลลัพ

  19. Largest Number ใน Python - จัดเรียงตัวเลขให้ได้ค่ามากที่สุด

    สมมติว่ามีรายการจำนวนเต็มไม่ติดลบ เราต้องจัดเรียงให้พวกมันสร้างตัวเลขที่ใหญ่ที่สุด ตัวอย่าง ถ้าอาร์เรย์คือ [10, 2] ตัวเลขที่ใหญ่ที่สุดจะเป็น 210 ขั้นตอนการทำงาน จัดเรียงตัวเลขที่ตัวเลขหลักสำคัญ (most significant digits) มากกว่าวางไว้ก่อน จัดเรียงตัวเลขเหล่านั้น หลังจากนั้นรวมตัวเลขจากอาร์เรย์ ตั

  20. Counting Bits ใน Python - นับบิต 1 ในเลขฐานสอง

    สมมติว่าเรามีจำนวนเต็มไม่ติดลบ num สำหรับแต่ละจำนวน i ในช่วง 0 ≤ i ≤ num เราต้องคำนวณจำนวน 1 ในคู่ส่วนประกอบฐานสอง (binary representation) และคืนค่าเป็นลิสต์ ตัวอย่าง ถ้าตัวเลขคือ 5 จำนวนคือ [0, 1, 2, 3, 4, 5] และจำนวน 1s คือ [0, 1, 1, 2, 1, 2] ขั้นตอนการทำงาน res := array ที่เก็บ num + 1 จำนวน 0

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:129/451  20-คอมพิวเตอร์/Page Goto:1 123 124 125 126 127 128 129 130 131 132 133 134 135