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

    ให้ลิสต์ nums มี 1 อย่างน้อย 1 ตัว ตรวจสอบว่า 1 ทั้งหมดอยู่ติดกัน (Consecutive)ตัวอย่าง: nums=[8,2,1,1,1,3,5] → Trueขั้นตอน (State Machine)visited = 0 (0=ยังไม่เจอ 1, 1=กำลังเจอ 1, 2=จบช่วง 1 แล้ว)วน x ใน nums:x==1: ถ้า visited==2 → False; visited=1x!=1 และ visited!=0: visited=2จบลูป: Trueตัวอย่างโค

  2. โปรแกรมนับสมาชิกที่มีค่า+1 อยู่ใน Array เดียวกันใน Python

    ให้ลิสต์ nums นับจำนวน x ที่ x+1 ก็อยู่ในลิสต์ (นับซ้ำตามความถี่)ตัวอย่าง: nums=[4,2,3,3,7,9] → 3 (2→3, 3→4, 3→4)ขั้นตอน (Counter)c = Counter(nums)วน Key i ถ้า 0: ans += c[i]ตัวอย่างโค้ด 0: answer += c[i] return answer nums = [4, 2, 3, 3, 7, 9] print(solve(nums)) # Output: 3อินพุต

  3. โปรแกรมหาตัวซ้ำในลิสต์ขนาด n+1 จากช่วง 1..n ใน Python

    ให้ลิสต์ nums ขนาด n+1 ค่าอยู่ใน 1..n ต้องมีตัวซ้ำ (Pigeonhole) หาตัวซ้ำ O(n) Time, O(1) Spaceตัวอย่าง: nums=[2,1,4,3,5,4] → 4ขั้นตอน (Math Sum)q = sum(nums)n = len(nums)v = (n-1)*n//2 (ผลรวม 1..n-1)คืน q - vตัวอย่างโค้ดdef solve(nums): q = sum(nums) n = len(nums) v = (n - 1) * n // 2

  4. โปรแกรมเรียงจุด Cartesian ตามมุม Polar Angle ใน Python

    ให้จุด Cartesian points เรียงตามมุม Polar (0 ถึง 2π) มุมเท่ากัน เรียงตามระยะห่างจาก Originตัวอย่าง: [(1,1),(1,-2),(-2,2),(5,4),(4,5),(2,3),(-3,4)] → [(5,4),(1,1),(4,5),(2,3),(-3,4),(-2,2),(1,-2)]ขั้นตอนKey Function: atan2(y,x) ได้มุม -π ถึง πถ้า มุม ≥ 0: (atan, x²+y²)ถ้า มุม < 0: (2π+atan, x²+y²)เรี

  5. โปรแกรมหา Operations น้อยสุดทำให้ Sum สอง Array เท่ากันใน Python

    ให้ nums1, nums2 (ค่า 1-6) Operation: เลือกสมาชิกใดก็ได้ เปลี่ยนเป็น 1-6 หา Operations น้อยสุดทำให้ Sum เท่ากันตัวอย่าง: nums1=[1,4], nums2=[5,4,4] → 2 (1→6, 4→1)ขั้นตอน (Greedy)คำนวณ sa, sb ถ้า sb สลับกันเรียง nums1 น้อย→มาก, nums2 มาก→น้อยGreedy เลือกการเปลี่ยนที่ให้ Gain สูงสุด (6-nums1[i] หรือ

  6. โปรแกรมนับคู่ Index ที่ค่าเท่ากันใน Python

    ให้ลิสต์ nums นับคู่ i < j ที่ nums[i] == nums[j]ตัวอย่าง: nums=[5,4,5,4,4] → 4 (คู่: (0,2),(1,3),(1,4),(3,4))ขั้นตอน (Combinatorics)c = Counter(nums)แต่ละค่าที่ปรากฏ n ครั้ง ให้ n*(n-1)/2 คู่รวมทั้งหมดตัวอย่างโค้ดfrom collections import Counter def solve(nums): c = Counter(nums) count = 0

  7. โปรแกรมหาจำนวนคูณของ n ที่ประกอบด้วยเลข 9 และ 0 เท่านั้นใน Python

    ให้ n หา x 0 ที่ประกอบด้วย 9 และ 0 เท่านั้น และหาร n ลงตัวตัวอย่าง: n=26 → 90090ขั้นตอน (Binary Pattern Trick)m=9, x=1วนจน m % n == 0:x += 1m = int(bin(x)[2:].replace(1,9)) (แปลง Binary ของ x ให้ 1→9, 0→0)ตัวอย่างโค้ดdef solve(n): m = 9 x = 1 while m % n != 0: x += 1 m =

  8. โปรแกรมตรวจสอบมีสมาชิกที่ค่าเท่ากับความถี่หรือไม่ใน Python

    ให้ลิสต์ nums ตรวจสอบว่ามีสมาชิกที่ frequency == value หรือไม่ตัวอย่าง: nums=[2,5,7,5,3,5,3,5,9,9,5] → True (5 ปรากฏ 5 ครั้ง)ขั้นตอน (Counter)nums_c = Counter(nums)วน (value, freq) ถ้า value == freq: Trueจบลูป: Falseตัวอย่างโค้ดfrom collections import Counter def solve(nums): nums_c = Counter(n

  9. โปรแกรมตรวจสอบความถี่สมาชิกเป็นเลขคู่ทั้งหมดใน Python

    ให้ลิสต์ nums ตรวจสอบว่าทุกตัวเลขปรากฏจำนวนครั้งเป็นเลขคู่ (Constant Space)ตัวอย่าง: nums=[8,9,9,8,5,5] → True (ทุกตัวปรากฏ 2 ครั้ง)ขั้นตอน (Sort + Pair Cancel)ถ้าความยาวคี่: Falseเรียง numsวน i=1..len-1: ถ้า nums[i]==nums[i-1] ตั้งทั้งคู่ = 0คืน sum(nums)==0ตัวอย่างโค้ดdef solve(nums): if len(n

  10. โปรแกรมหา Index จุดสูง (Peak) ในลิสต์ตัวเลขใน Python

    ให้ลิสต์ nums ความยาว ≥ 2 หา Index ทุกตัวที่เป็น Peak:Index 0: nums[1]Index n-1: nums[n-2]กลาง: nums[i-1] nums[i+1]ตัวอย่าง: nums=[5,6,7,6,9] → [2,4]ขั้นตอน (One Pass O(n))วน i, num ใน enumerate(nums)ตรวจสอบเงื่อนไขตามตำแหน่งเก็บ Index ที่เป็น Peakตัวอย่างโค้ด 0 and i < n - 1: if nums

  11. โปรแกรมตรวจสอบเลขฟีบอนัชชีใน Python

    ตรวจสอบว่า n เป็นพจน์ของลำดับฟีบอนัชชีหรือไม่ตัวอย่าง: n=13 → True (0,1,1,2,3,5,8,13,21,34...)ขั้นตอน (Mathematical Property)จำนวน n เป็นฟีบอนัชชี ⟺ 5n²+4 หรือ 5n²-4 เป็น Perfect Squareโค้ดใช้สูตร Golden Ratio: phi = (1+√5)/2, a = phi*n ตรวจสอบว่า a ใกล้เคียงจำนวนเต็มตัวอย่างโค้ดfrom math import sqr

  12. โปรแกรมหาห้องแรกที่พอดีจากลิสต์ห้องใน Python

    ให้ลิสต์ rooms และเป้าหมาย t หาค่าแรกใน rooms ที่ ≥ t ไม่มี → -1ตัวอย่าง: rooms=[20,15,35,55,30], t=30 → 35ขั้นตอน (Linear Scan)วนทุก room ใน roomsถ้า = t: คืน roomจบลูป: คืน -1ตัวอย่างโค้ด= t: return room return -1 rooms = [20, 15, 35, 55, 30] t = 30 print(solve(rooms, t)) # Outpu

  13. โปรแกรมหา Index น้อยที่สุดที่ค่าเท่ากับ Index ใน Python

    ให้ลิสต์ nums เรียงเพิ่มขึ้น ไม่ซ้ำ หา i น้อยที่สุดที่ nums[i] == i (O(log n) ด้วย Binary Search)ตัวอย่าง: nums=[-4,-1,2,3,8] → 2 (nums[2]=2 และ nums[3]=3 แต่ 2 น้อยกว่า)ขั้นตอน (Binary Search)ret=-1, lhs=0, rhs=len(nums)-1วน while lhs <= rhs:mid = (lhs+rhs)//2ถ้า nums[mid] == mid: ret = midถ้า = mi

  14. โปรแกรมหา Substring ทั้งหมดที่มี Anagram อยู่ในสตริงเดียวกันใน Python

    ให้สตริง s หา Substring ทุกตัวที่มี Anagram อีกตัวหนึ่งอยู่ใน s ตำแหน่งต่างกัน เรียงผลลัพธ์เล็กซิโคกราฟิกตัวอย่าง: s=abcba → [a,a,ab,abc,abcb,b,b,ba,bc,bcba,cb,cba]ขั้นตอนวนความยาว Substring i = 1..Lสร้าง Map smap Key = Sorted Substring, Value = ลิสต์ Substring ต้นฉบับถ้า Key มี ≥ 2 ค่า → เพิ่มทุกตั

  15. โปรแกรมตรวจสอบ n แทนเป็นผลรวม k จำนวนเฉพาะได้หรือไม่ใน Python

    ให้ n, k ตรวจสอบว่า n แทนเป็นผลรวมของ k จำนวนเฉพาะได้หรือไม่ตัวอย่าง: n=30, k=3 → True (2+11+17)ขั้นตอน (Number Theory)ถ้า n < 2k: False (จำนวนเฉพาะน้อยสุดคือ 2)ถ้า 2: True (ทฤษฎี Goldbach Weak Conjecture)ถ้า k == 2: n ต้องเป็นเลขคู่ หรือ n-2 เป็นเฉพาะถ้า k == 1: n ต้องเป็นเฉพาะตัวอย่างโค้ด 1:

  16. โปรแกรมหาตัวหารร่วมมาก (HCF/GCD) ของลิสต์ตัวเลขใน Python

    ให้ลิสต์ nums หาตัวหารร่วมมาก (GCD) ของทุกตัวตัวอย่าง: nums=[15,81,78] → 3ขั้นตอน (Iterative GCD)ถ้า len(nums)==1: คืน nums[0]div = gcd(nums[0], nums[1])ถ้า len(nums)==2: คืน divวน i=1..len(nums)-2: div = gcd(div, nums[i+1]) ถ้า div==1 หยุดทันทีตัวอย่างโค้ดfrom math import gcd def solve(nums):

  17. โปรแกรมหา Index ที่ผลรวมซ้ายและขวาเท่ากันใน Python

    ให้ลิสต์ nums หา Index i น้อยที่สุด ที่ผลรวมซ้าย = ผลรวมขวา (ไม่รวมตัวเอง) ไม่มี → -1ตัวอย่าง: nums=[8,2,3,6,5,2,5,9,1,2] → 4 (ซ้าย: 8+2+3+6=19, ขวา: 2+5+9+1+2=19)ขั้นตอน (One Pass O(n))r = sum(nums), l = 0วน i, x ใน nums:r -= xถ้า r == l: คืน il += xคืน -1ตัวอย่างโค้ดdef solve(nums): r = sum(nu

  18. โปรแกรมหาขนาด Common Special Subsequence ของสองสตริงใน Python

    ให้สตริง s1, s2 หาความยาว Longest Common Subsequence (LCS) — Special Subsequence หมายถึง Subsequence (ลบตัวอักษรได้ 0 ตัวขึ้นไป)ตัวอย่าง: s1=pineapple, s2=people → 5 (LCS = peple)ขั้นตอน (DP Space Optimized O(min(m,n)))ใช้ 2 Dictionary prev และ cur (Default 0)วน i ทุกตัวอักษรใน s1:วน j ทุกตัวอักษรใน

  19. โปรแกรมแทรกโหนดใหม่ใน Linked List ก่อนตำแหน่งที่กำหนดใน Python

    แทรกค่า val ก่อน Index pos ใน Singly Linked Listตัวอย่าง: nums=[1,5,3,6,8], pos=3, val=7 → [1,5,3,7,6,8]ขั้นตอนสร้างโหนดใหม่ new = ListNode(val)ถ้า pos==0: new.next = head, คืน newเดินหาโหนดก่อนตำแหน่ง pos (คือ pos-1)new.next = temp.next; temp.next = newคืน headตัวอย่างโค้ดclass ListNode: def __

  20. โปรแกรมหาค่าคาดหวังของสมการกรณีสุ่มใน Python

    ให้ n, x = rand() mod n (rand สุ่ม 0 ถึง 10^100) หาค่าคาดหวังของ Y = sqrt(x + sqrt(x + sqrt(x + ...)))ตัวอย่าง: n=5 → 1.696...ขั้นตอนPre-compute Prefix Sum สำหรับ n ≤ 5×10^6สูตร Closed-form สำหรับ 5×10^6 ใช้ Integral Approximationตัวอย่างโค้ดdef solve(n): err = 2235.023971557617 max_n = 5 *

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:370/451  20-คอมพิวเตอร์/Page Goto:1 364 365 366 367 368 369 370 371 372 373 374 375 376