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

    ปัญหา อาร์เรย์ nums และ requests[i] = [start_i, end_i] ขอผลรวม nums[start_i..end_i] จัดเรียง nums ใหม่ (permutation) ให้ผลรวมของทุก request รวมกันสูงสุด modulo 1e9+7 ตัวอย่าง nums=[10,20,30,40,50], requests=[[1,3],[0,1]] → 190 (เรียง [30,50,40,20,10] request0: 50+40+20=110, request1: 30+50=80 รวม 1

  2. โปรแกรมทำให้ผลรวมหารพีลงตัวใน Python

    ปัญหา อาร์เรย์ nums และ p ลบ subarray (ไม่ใช่ทั้งอาร์เรย์) น้อยที่สุด ให้ผลรวมที่เหลือหาร p ลงตัว หาความยาว subarray นั้น ตัวอย่าง nums=[8,2,6,5,3], p=7 → 1 (ลบ 3 เหลือ 21 หาร 7 ลงตัว) ขั้นตอนการแก้ปัญหา ans := inf, s := sum(nums) % p d := {0: -1}, cum := 0 ถ้า s == 0: คืน 0 วน i 0..n-1: cum +=

  3. โปรแกรมแบ่งสตริงเป็นสตริงย่อยไม่ซ้ำสูงสุดใน Python

    ปัญหา สตริง s แบ่งเป็นสตริงย่อยไม่ซ้ำกันมากที่สุด (concatenation ต้องได้ s เดิม) ตัวอย่าง s=pqpqrrr → 5 (แบ่งเป็น [p,q,pq,r,rr]) ขั้นตอนการแก้ปัญหา res := [0] DFS: dfs(s, path=set()): ถ้า s ว่าง: res[0] = max(res[0], len(path)) วน i 1..len(s): x := s[:i] ถ้า x not in path: dfs(s[i:], path | {x}

  4. โปรแกรมหาผลคูณไม่ติดลบสูงสุดในเมทริกซ์ใน Python

    ปัญหา เมทริกซ์ m x n เริ่ม (0,0) ไป (m-1,n-1) เดินขวาหรือลงอย่างเดียว หาเส้นทางที่ผลคูณไม่ติดลบสูงสุด modulo 1e9+7 ตัวอย่าง [[2,-4,2],[2,-4,2],[4,-8,2]] → 256 (เส้นทาง 2→2→-4→-8→2 ผลคูณ 256) ขั้นตอนการแก้ปัญหา p := 10^9+7, m, n := rows, cols dp[i][j] := [max_product, min_product] ถึง (i,j) DP: ฐ

  5. โปรแกรมหาเมทริกซ์ที่ถูกต้องจากผลรวมแถวและคอลัมน์ใน Python

    ปัญหา มี rowSum และ colSum หาเมทริกซ์ขนาด (len(rowSum) x len(colSum)) ค่าไม่ติดลบ ที่ผลรวมแถวและคอลัมน์ตรงตามที่กำหนด ตัวอย่าง rowSum=[13,14,12], colSum=[9,13,17] → เมทริกซ์ [[9,4,0],[0,9,5],[0,0,12]] ขั้นตอนการแก้ปัญหา matrix := zeros, visited := set() ฟังก์ชัน minimum(r, c): หา min_total และ t

  6. โปรแกรมหา maximal network rank ใน Python

    ปัญหา มี n เมือง และถนน roads[i] = [u,v] network rank ของคู่เมือง = จำนวนถนนที่เชื่อมต่อกับเมืองใดเมืองหนึ่ง (ถนนที่เชื่อมทั้งสองนับ 1 ครั้ง) maximal network rank = ค่าสูงสุดของทุกคู่ ตัวอย่าง roads = [(0,1),(0,3),(1,2),(1,3),(2,3),(2,4)] → 5 (เมือง 1 และ 2 มี rank 5) ขั้นตอนการแก้ปัญหา nodes :=

  7. โปรแกรมนับจำนวนชุดของเส้นตรง k เส้นที่ไม่ทับซ้อนใน Python

    ปัญหา มีจุด n จุดบนเส้นตรง (ตำแหน่ง 0..n-1) หาจำนวนวิธีวาดเส้นตรง k เส้น ไม่ทับซ้อน แต่ละเส้นครอบคลุม 2 จุดขึ้นไป จุดปลายเป็นจำนวนเต็ม สามารถใช้ปลายร่วมกันได้ ผลลัพธ์ modulo 1e9+7 ตัวอย่าง n=4, k=2 → 5 ([(0,2),(2,3)], [(0,1),(1,3)], [(0,1),(2,3)], [(1,2),(2,3)], [(0,1),(1,2)]) ขั้นตอนการแก้ปัญหา

  8. โปรแกรมหาสตริงเล็กซิโคกราฟิกน้อยที่สุดหลังดำเนินการใน Python

    ปัญหา สตริง s ตัวเลข มีการดำเนินการ 2 แบบ: 1) บวก a ให้ตำแหน่งคี่ (0-indexed) โมด 10 2) หมุนขวา b ตำแหน่ง ทำซ้ำได้ หาสตริงเล็กซิโคกราฟิกน้อยที่สุด ตัวอย่าง s=5323, a=9, b=2 → 2050 (หมุน→บวก→บวก→หมุน→บวก) ขั้นตอนการแก้ปัญหา BFS บนสถานะสตริง: seen := set(), deq := deque([s]) بينما deq: curr := de

  9. โปรแกรมหาทีมที่ดีที่สุดโดยไม่มีข้อขัดแย้งใน Python

    ปัญหา scores[i], ages[i] คะแนนและอายุผู้เล่น ต้องการทีมคะแนนรวมสูงสุด โดยไม่มีข้อขัดแย้ง: ผู้เล่นอายุน้อยกว่ามีคะแนนสูงกว่าผู้เล่นอายุมากกว่าอย่างเคร่งครัด ตัวอย่าง scores=[5,7,9,14,19], ages=[5,6,7,8,9] → 54 (เลือกทุกคนได้เพราะคะแนนเพิ่มตามอายุ) ขั้นตอนการแก้ปัญหา sa := list of (age, score) เรีย

  10. โปรแกรมหาเส้นทางที่ความพยายามน้อยที่สุดใน Python

    ปัญหา เมทริกซ์ height m x n เริ่ม (0,0) ไป (m-1,n-1) เดิน 4 ทิศทาง ความพยายาม = ความต่างสัมบูรณ์สูงสุดระหว่างเซลล์ติดกันในเส้นทาง หาเส้นทางที่ความพยายามน้อยที่สุด ตัวอย่าง [[2,3,4],[4,9,5],[6,4,6]] → ผลลัพธ์ 1 (เส้นทาง 2→3→4→5→6 ความต่างสูงสุด = 1) ขั้นตอนการแก้ปัญหา r, c := rows, cols queue := [

  11. โปรแกรมนับสตริงย่อยที่ต่างกันแค่หนึ่งตัวอักษรใน Python

    ปัญหา สตริง s และ t หาจำนวนวิธีเลือกสตริงย่อยของ s แล้วเปลี่ยนตัวอักษร 1 ตัว ให้ได้สตริงย่อยของ t ตัวอย่าง s=sts, t=tsts → ผลลัพธ์ 6 ขั้นตอนการแก้ปัญหา n1 := len(s), n2 := len(t), ans := 0 วน i1, c1 ใน s, i2, c2 ใน t: i := i1, j := i2 ขยายขณะ s[i] == t[j]: i+=1, j+=1 ถ้า i < n1 and j < n2 and s[

  12. โปรแกรมนับสตริงสระที่เรียงลำดับแล้วใน Python

    ปัญหา ให้ n หาจำนวนสตริงความยาว n ที่ประกอบด้วยสระ a,e,i,o,u และเรียงตามลำดับตัวอักษร (non-decreasing) ตัวอย่าง n=2 → 15 (aa, ae, ai, ao, au, ee, ei, eo, eu, ii, io, iu, oo, ou, uu) ขั้นตอนการแก้ปัญหา ถ้า n == 1: คืน 5 count := [1]*6 (index 1..5 แทน a..u) วน i 3 ถึง n: count[1] += count[2]+count

  13. โปรแกรมนับการลบน้อยที่สุดเพื่อทำให้ความถี่ตัวอักษรไม่ซ้ำกันใน Python

    ปัญหา สตริง s ดี ถ้าไม่มีตัวอักษร 2 ตัวที่มีความถี่เท่ากัน หาจำนวนการลบตัวอักษรน้อยที่สุดทำให้ดี ตัวอย่าง s=ssstttuu → ผลลัพธ์ 2 (ลบ t หนึ่งตัว → 3s,2t,2u แล้วลบ t หรือ u อีกตัว) ขั้นตอนการแก้ปัญหา val := Counter(s), res := 0 numlist := sorted(val.values()) วน i 0 ถึง len(numlist)-2: ถ้า 0 and

  14. โปรแกรมหาจำนวนการดำเนินการน้อยที่สุดลด X เป็นศูนย์ใน Python

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

  15. โปรแกรมหาสตริงเล็กที่สุดที่มีค่าตัวเลขกำหนดใน Python

    ปัญหา ให้ n (ความยาว) และ k (ค่าตัวเลข) หาสตริงเล็กซิโคกราฟิกน้อยที่สุด ค่าตัวอักษร: a=1, b=2, ..., z=26 ค่าสตริง = ผลรวมค่าตัวอักษร ตัวอย่าง n=4, k=16 → aaam (1+1+1+13=16) ขั้นตอนการแก้ปัญหา string := بينما 0: letter := min(26, k - n + 1) string += chr(letter + ord(a) - 1) k -= letter; n -=

  16. โปรแกรมหาจำนวนวิธีทำให้อาร์เรย์ fair ใน Python

    ปัญหา อาร์เรย์ nums ลบสมาชิก 1 ตำแหน่งได้ อาร์เรย์ fair ถ้าผลรวมตำแหน่งคู่ = ผลรวมตำแหน่งคี่ (หลังลบ) หาจำนวนตำแหน่งที่ลบได้เพื่อให้ fair ตัวอย่าง nums=[5,3,7,2] → ผลลัพธ์ 1 (ลบ index 1 ได้ [5,7,2] ผลรวมคู่ 5+2=7, คี่ 7 → fair) ขั้นตอนการแก้ปัญหา res=0, sm1=0, sm2=0 (sm1 ผลรวม index คี่, sm2 inde

  17. โปรแกรมนับจำนวนคนที่ได้รับกล่องอาหารใน Python

    ปัญหา มีคน 2 ประเภท: ชอบมังสวิรัติ (0) และไม่มังสวิรัติ (1) มีกล่องอาหารจำกัด คนจะไม่รับกล่องที่ไม่ตรงชอบ จะแทรกคิวท้าย จนกว่าจะได้กล่องที่ชอบ หาจำนวนคนที่ไม่ได้กล่องอาหาร ตัวอย่าง people=[0,1,1,0], packets=[0,1,0,0] → ผลลัพธ์ 1 (มีคนชอบไม่มังสวิรัติ 2 คน แต่กล่องไม่มังสวิรัติแค่ 1 กล่อง → คนหนึ่งร

  18. โปรแกรมรวม linked list ระหว่างตำแหน่ง a ถึง b ใน Python

    ปัญหา Linked list L1 และ L2 ความยาว m,n มีตำแหน่ง a,b ลบโหนด L1 จาก a ถึง b แล้วแทรก L2 เข้าไปตรงกลาง ตัวอย่าง L1=[1,5,6,7,1,6,3,9,12], L2=[5,7,1,6], a=3, b=6 → [1,5,6,5,7,1,6,9,12] ขั้นตอนการแก้ปัญหา head2 := L2, temp := L2 หา tail2 (โหนดสุดท้ายของ L2) count:=0, temp:=L1, end1:=None, start3:=Non

  19. โปรแกรมหาอาร์เรย์คู่ที่คูณสองใน Python

    ปัญหา อาร์เรย์ nums ความยาวคู่ จัดเรียงใหม่ได้ไหม ที่ nums[2*i+1] = 2*nums[2*i] สำหรับทุก i ตัวอย่าง nums=[4,-2,2,-4] → True (จัดเป็น [-2,-4,2,4] หรือ [2,4,-2,-4]) ขั้นตอนการแก้ปัญหา cnt := Counter(nums) วน x ใน sorted(cnt, key=abs): ถ้า cnt[2*x]: คืน False cnt[2*x] -= cnt[x] คืน True การนำ

  20. โปรแกรมเพิ่มแรงขั้นต่ำระหว่างลูกบอลในถังให้สูงสุดใน Python

    ปัญหา มีตำแหน่งถัง pos และ x ลูกบอล แรงระหว่างลูกบอลที่ p,q คือ |p-q| วางลูกบอล x ลูกในตำแหน่งที่กำหนด ให้แรงขั้นต่ำระหว่างคู่อยู่ใดๆ สูงสุด ตัวอย่าง pos=[2,4,6,8,10,12], x=3 → ผลลัพธ์ 4 (วางที่ 4,8,12 แรงขั้นต่ำ = 4) ขั้นตอนการแก้ปัญหา ฟังก์ชัน ball_count(d): นับลูกบอลที่วางได้ถ้าระยะห่างขั้นต่ำ

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