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

    ปัญหา อาร์เรย์ nums และ k หาลำดับย่อย (subsequence) ขนาด k ที่ competitive มากที่สุด คือ ตำแหน่งแรกที่ต่างกัน ตัวเลขน้อยกว่า ตัวอย่าง nums=[4,6,3,7], k=2 → [3,7] (subsequences: [4,6],[4,3],[4,7],[6,3],[6,7],[3,7] → [3,7] น้อยที่สุด) ขั้นตอนการแก้ปัญหา attempts := len(nums) - k stack := [] สำหรับ

  2. โปรแกรมแบ่งสตริงสองสตริงเพื่อสร้างพาลินโดรมใน Python

    ปัญหา สตริง a และ b ยาวเท่ากัน เลือกดัชนีหนึ่ง ตัดทั้งคู่ที่ดัชนีนั้น ได้ a_pref, a_suff และ b_pref, b_suff ตรวจสอบว่า a_pref + b_suff หรือ b_pref + a_suff เป็นพาลินโดรมหรือไม่ (อาจตัดว่างได้) ตัวอย่าง a=pqrst, b=turqp → True (ตัด a:[pq,rst], b:[tu,rqp] → pq+rqp = pqrqp เป็นพาลินโดรม) ขั้นตอนการแก

  3. โปรแกรมหาการเคลื่อนย้ายน้อยที่สุดเพื่อทำให้อาร์เรย์ complementary ใน Python

    ปัญหา อาร์เรย์ nums ความยาวคู่ และ limit หนึ่งการเคลื่อนย้าย: เปลี่ยนค่าใดๆ ใน nums เป็น 1..limit อาร์เรย์ complementary ถ้า nums[i] + nums[n-1-i] เท่ากันทุก i หาจำนวนการเคลื่อนย้ายน้อยที่สุด ตัวอย่าง nums=[1,4,2,3], limit=4 → ผลลัพธ์ 1 (เปลี่ยน index 1 เป็น 2 → [1,2,2,3] ผลรวมคู่ = 4 ทุกคู่) ขั้น

  4. โปรแกรมตรวจสอบว่าย่อยอาร์เรย์จัดเรียงเป็นลำดับเลขคณิตได้หรือไม่ใน Python

    ปัญหา มี nums และ query l, r ตรวจสอบว่า nums[l[i]..r[i]] จัดเรียงใหม่ได้เป็นลำดับเลขคณิตหรือไม่ (ความต่างติดกันคงที่) ตัวอย่าง nums=[6,8,7,11,5,9], l=[0,0,2], r=[2,3,5] → [True, False, True] ([6,8,7]→[6,7,8] ใช่, [6,8,7,11] ไม่ใช่, [7,11,5,9]→[5,7,9,11] ใช่) ขั้นตอนการแก้ปัญหา new := [True]*len(l

  5. โปรแกรมหาตึกที่ไกลที่สุดที่นักพาร์คอร์สามารถถึงได้ใน Python

    ปัญหา มีตึกสูงต่างกัน heights นักพาร์คอร์เริ่มตึก 0 มีอิฐ (ความสูง 1 หน่วย) และไม้ค้ำ ต้องขึ้นตึกที่สูงกว่า ใช้อิฐหรือไม้ค้ำ (ใช้ครั้งละ 1) หาตึกสุดท้ายที่ถึงได้ ตัวอย่าง heights=[5,8,7,6,2,3,1,4], bricks=3, ladders=2 → ผลลัพธ์ 7 (ใช้อิฐขึ้น 5→8, ไม้ค้ำ 2→3, 1→4) ขั้นตอนการแก้ปัญหา temp := min-he

  6. โปรแกรมหากำไรสูงสุดจากการขายลูกบอลสีต่างๆ ที่ราคาลดลงเรื่อยๆใน Python

    ปัญหา inventory[i] = จำนวนลูกบอลสี i ลูกค้าสั่ง orders ลูก ราคาลูกบอลสีนั้น = จำนวนคงเหลือของสีนั้น (เช่น 6 ลูก → ลูกแรกราคา 6, ลูกถัดไป 5, ...) หากำไรสูงสุด modulo 1e9+7 ตัวอย่าง inventory = [5,7], orders = 6 → ผลลัพธ์ 31 (ขายสีแรก 2 ลูก: 5,4; สีสอง 4 ลูก: 7,6,5,4; รวม 5+4+7+6+5+4=31) ขั้นตอนการแ

  7. โปรแกรมหาจำนวนรอบหมุนน้อยที่สุดเพื่อเพิ่มกำไรจากล้อฟีริสใน Python

    ปัญหา ล้อฟีริส 4 ตู้ ตู้ละ 4 คน หมุนทวนเข็มนาฬิกา ค่าใช้จ่ายต่อรอบ = run มีอาร์เรย์ cust จำนวนลูกค้ารอ ก่อนรอบที่ i ค่าโดยสารต่อคน = board (ต่อรอบ) ลูกค้าต้องขึ้นถ้ามีที่ว่าง หารอบหมุนน้อยที่สุดที่ทำกำไรสูงสุด ตัวอย่าง cust=[6,4], board=6, run=4 → ผลลัพธ์ 3 (รอบ1: 4 คนขึ้น, รอบ2: 4 คนขึ้น, รอบ3: 3

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

    ปัญหา แมลงอยู่ที่ 0 บนเส้นจำนวน บ้านอยู่ที่ x มี forbidden ตำแหน่งห้ามกระโดด กฎ: กระโดดขวา a หน่วย, กระโดดซ้าย b หน่วย, ห้ามกระโดดซ้ายติดกัน 2 ครั้ง, ห้ามไปตำแหน่งติดลบ หาจำนวนกระโดดน้อยที่สุดถึง x มิฉะนั้น -1 ตัวอย่าง forbidden=[2,3,7,9,12], a=4, b=2, x=16 → ผลลัพธ์ 7 (0→4→8→(ไม่ไป12)→6→10→14→18→1

  9. โปรแกรมหาลำดับสืบสังเคราะห์ในครอบครัวใน Python

    ปัญหา ครอบครัวมีสมาชิกหลายรุ่น มีการเกิดและตาย หัวหน้าครอบครัวคือคนอายุมากที่สุด ต้องการฟังก์ชัน birth(parent, child), death(name), inheritance() คืนลำดับสืบสังเคราะห์ปัจจุบัน (DFS preorder ข้ามผู้ตาย) ตัวอย่าง Paul → Zach, Jesse; Jesse → Ursula, Ryan, Thea; Paul ตาย → ลำดับ [Zach, Jesse, Ursula, R

  10. โปรแกรมหาพื้นที่แนวตั้งกว้างที่สุดระหว่างสองจุดที่ไม่มีจุดอื่นอยู่ภายในใน Python

    ปัญหา มีจุด n จุด (x, y) พื้นที่แนวตั้งคือพื้นที่ที่ขยายไปอันตรายตามแกน y หาพื้นที่ระหว่างสองจุดที่ไม่มีจุดอื่นอยู่ภายในและกว้างที่สุด ตัวอย่าง pts = [[10,9],[11,11],[9,6],[11,9]] → ผลลัพธ์ 1 ขั้นตอนการแก้ปัญหา เรียง pts ตาม x คืนค่า max(pts[i][0] - pts[i-1][0] for i in 1..len(pts)-1) การนำไปใช

  11. โปรแกรมตรวจสอบว่าสตริงสองสตริงใกล้เคียงกันหรือไม่ใน Python

    ปัญหา สตริง s และ t ใกล้เคียงกัน (close) ถ้าเปลี่ยนจากหนึ่งเป็นอีกอันได้ด้วยการดำเนินการ: 1. สลับตัวอักษรสองตัวที่มีอยู่ (เช่น abcde → aecdb) 2. แปลงทุกตัวอักษรชนิดหนึ่งเป็นอีกชนิดหนึ่ง และในทางกลับกัน (เช่น aacabb → bbcbaa) ดำเนินการได้ไม่จำกัดครั้ง ตัวอย่าง s = zxyyyx, t = xyyzzz → true (zxyyyx →

  12. โปรแกรมสร้างคิวที่เพิ่ม/ลบได้จากหน้า กลาง และหลังใน Python

    ปัญหา สร้างคิวที่รองรับการเพิ่ม/ลบข้อมูลที่หน้า (front), กลาง (middle), และหลัง (back) พร้อมฟังก์ชันแสดงคิว ตัวอย่าง push_back(10), push_back(20), push_front(30), push_middle(40), push_front(50) → show: [50,30,40,10,20] pop_back → [50,30,40,10] pop_front → [30,40,10] pop_middle → [30,10] ขั้นตอนกา

  13. โปรแกรมหาตำแหน่งที่ลูกบอลตกในกล่องกริดใน Python

    ปัญหา กริด m x n แต่ละเซลล์มีแผ่นแท้งมุม: 1 = มุมซ้ายบน-ขวาล่าง, -1 = มุมขวาบน-ซ้ายล่าง วางลูกบอลที่เซลล์บนสุดแต่ละคอลัมน์ หาว่าลูกบอลตกออกด้านล่างได้หรือไม่ (คืนคอลัมน์ปลายทาง) หรือติด (-1) ตัวอย่าง mat = [[1,1,1,-1],[-1,1,1,-1],[1,-1,-1,1],[1,-1,1,-1]] → ผลลัพธ์ [-1,-1,-1,-1] (ลูกบอลทุกลูกติด) ข

  14. โปรแกรมหาต้นทุนขั้นต่ำในการทาบ้านใน Python

    ปัญหา มี m บ้าน ต้องทาสี n สี (1..n) บางหลังทาแล้ว (0 = ยังไม่ทา) บ้านที่ติดกันและสีเหมือนกันเรียกว่า neighborhood มี cost[i][j] = ต้นทุนทาบ้าน i สี j+1 หาต้นทุนน้อยที่สุดเพื่อให้มี neighborhood ทั้งหมด target ชุด ถ้าไม่ได้คืน -1 ตัวอย่าง houses = [0,2,1,2,0], cost = [[1,10],[10,1],[10,1],[1,10],[5

  15. โปรแกรมหาระยะทางรวมน้อยที่สุดระหว่างบ้านและกล่องจดหมายใน Python

    ปัญหา มีอาร์เรย์ houses แทนตำแหน่งบ้าน และ k กล่องจดหมาย หาตำแหน่งวางกล่องจดหมาย k ตัว ให้ผลรวมระยะทางจากแต่ละบ้านถึงกล่องจดหมายที่ใกล้ที่สุดน้อยที่สุด ตัวอย่าง houses = [6,7,9,16,22], k = 2 → ผลลัพธ์ 9 (วางกล่องที่ 7 และ 18: |6-7|+|7-7|+|9-7|+|16-18|+|22-18| = 1+0+2+2+4=9) ขั้นตอนการแก้ปัญหา เรี

  16. โปรแกรมหาบรรพบุรุษที่ k ของโหนดในต้นไม้ใน Python

    ปัญหา ต้นไม้ n โหนด (0 ถึง n-1) กำหนดโดยอาร์เรย์ parent ที่ parent[i] คือพ่อของ i รากคือ 0 หาบรรพบุรุษที่ k ของโหนดที่กำหนด ถ้าไม่มีคืน -1 ตัวอย่าง parent = [-1,0,0,1,2,2,5,5], node=6, k=2 → ผลลัพธ์ 2 (บรรพบุรุษที่ 1 คือ 5, ที่ 2 คือ 2) ขั้นตอนการแก้ปัญหา ถ้า node == -1: คืน -1 ถ้า k == 1: คืน pa

  17. โปรแกรมหาเส้นเชื่อมสำคัญและเส้นเชื่อมสำคัญเทียมในกราฟใน Python

    ปัญหา กราฟไม่มีทิศทาง n จุด มีน้ำหนักเส้นเชื่อม หาเส้นเชื่อมสำคัญ (critical) และเส้นเชื่อมสำคัญเทียม (pseudo-critical) ใน MST เส้นสำคัญ: ถ้าลบออกน้ำหนัก MST เพิ่มขึ้น เส้นสำคัญเทียม: ปรากฏใน MST บางตัวแต่ไม่ใช่ทุกตัว ตัวอย่าง n=5, edges = [[0,1,10],[1,2,10],[2,3,10],[3,4,10],[4,0,10]] → ผลลัพธ์ [[]

  18. โปรแกรมตรวจสอบว่ากินขนมชนิดโปรดในวันที่โปรดได้หรือไม่ใน Python

    ปัญหา มี candiesCount[i] = จำนวนขนมชนิด i และ queries[i] = [favoriteType, favoriteDay, dailyCap] กฎ: เริ่มกินวันที่ 0, ต้องกินขนมชนิดก่อนหน้าครบก่อนถึงชนิดถัดไป, ต้องกินอย่างน้อย 1 ชิ้นต่อวัน จนกว่าจะหมด ตอบแต่ละ query ว่าสามารถกินขนมชนิด favoriteType ในวัน favoriteDay ได้หรือไม่ โดยไม่กินเกิน daily

  19. โปรแกรมหาผลรวมสัมบูรณ์สูงสุดของย่อยอาร์เรย์ใน Python

    ปัญหา มีอาร์เรย์ nums หาผลรวมสัมบูรณ์สูงสุดของย่อยอาร์เรย์ใดๆ (รวมถึงย่อยอาร์เรย์ว่าง) คือ |sum| ตัวอย่าง nums = [2,-4,-3,2,-6] → ผลลัพธ์ 11 เพราะย่อยอาร์เรย์ [2,-4,-3,2] ให้ |2-4-3+2| = 11 ขั้นตอนการแก้ปัญหา n := len(nums), ans := 0, temp := 0 วนลูป i จาก 0 ถึง n-1 (หาผลรวมบวกสูงสุด): ถ้า temp

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:359/451  20-คอมพิวเตอร์/Page Goto:1 353 354 355 356 357 358 359 360 361 362 363 364 365