Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. Add Bold Tag in String – เพิ่มแท็ก Bold ในสตริง C++

    ปัญหา: Add Bold Tag in String กำหนดสตริง s และพจนานุกรม dict ใส่แท็ก <b> และ </b> ครอบ ทุก substring ใน s ที่อยู่ใน dict - Substring ทับซ้อน → รวมเป็นแท็กเดียว - Substring ติดกัน → รวมเป็นแท็กเดียว ตัวอย่าง s = abcxyz123, dict = [abc, 123] Output: <b>abc</b>xyz<b>123&l

  2. Minimum Factorization – หาตัวเลขน้อยที่สุดที่คูณหลักได้เท่ากับเป้าหมายใน C++

    ปัญหา: Minimum Factorization กำหนดจำนวนเต็มบวก x หา จำนวนเต็มบวกที่น้อยที่สุด b ที่ ผลคูณของหลักต่างๆ ของ b เท่ากับ x ไม่มีคำตอบ → คืน 0 ตัวอย่าง x = 48 → Output: 68 (6 × 8 = 48, และ 68 < 86) แนวทางแก้ปัญหา: Greedy – แยกตัวประกอบจาก 9 ลงมา 2 เหตุผล ต้องการตัวเลข น้อยที่สุด → หลักสิบต้องน้อยที่สุ

  3. Find the Derangement of An Array – หาจำนวนการเรียงลำดับเดอะรองเมนต์ใน C++

    ปัญหา: Find the Derangement of An Array อาร์เรย์ [1, 2, ..., n] หาจำนวน Derangements (การเรียงใหม่ที่ ไม่มีตัวเลขใดอยู่ตำแหน่งเดิม) คำตอบ modulo 10^9 + 7 ตัวอย่าง n = 3: [1,2,3] → Derangements: [2,3,1], [3,1,2] → Output: 2 แนวทางแก้ปัญหา: Dynamic Programming Recurrence (Derangement Formula) D(n)

  4. 4 Keys Keyboard – หาจำนวน A สูงสุดจาก 4 ปุ่มใน C++

    ปัญหา: 4 Keys Keyboard มี 4 ปุ่ม: A (พิมพ์ A), Ctrl+A (Select All), Ctrl+C (Copy), Ctrl+V (Paste) กำหนดจำนวนครั้งที่กดปุ่ม N หา จำนวน A สูงสุด ที่ได้ ตัวอย่าง N = 7 → Output: 9 Sequence: A, A, A, Ctrl+A, Ctrl+C, Ctrl+V, Ctrl+V → 3 A → Select All → Copy → Paste → Paste = 3 × 3 = 9 แนวทางแก้ปัญหา: D

  5. Equal Tree Partition – ตรวจสอบการแบ่งต้นไม้ครึ่งๆ ใน C++

    ปัญหา: Equal Tree Partition กำหนด Binary Tree ตรวจสอบว่าสามารถ ตัดขอบ 1 ขอบ เพื่อแบ่งเป็น 2 ต้นไม้ที่ ผลรวมค่าโหนดเท่ากัน ได้หรือไม่ ตัวอย่าง 5 / \ 10 10 / \ 2 3 ตัดขอบระหว่าง 5 (ราก) กับ 10 (ขวา) → ซ้าย: 5+10=15, ขวา: 10+2+3=15 → true แนวทางแก้ปัญหา: Post-order

  6. Path Sum IV – ผลรวมเส้นทางในต้นไม้เข้ารหัส 3 หลัก C++

    ปัญหา: Path Sum IV ต้นไม้ความลึก < 5 เข้ารหัสเป็นรายการจำนวน 3 หลัก: - หลักร้อย = ความลึก D (1-4) - หลักสิบ = ตำแหน่ง P ในระดับ (1-8, เหมือน full binary tree) - หลักหน่วย = ค่า V (0-9) หา ผลรวมเส้นทางจากรากถึงใบทุกเส้นทาง ตัวอย่าง Input: [113, 215, 221] Depth 1: 1 (pos 1, val 3) → 113 Depth 2:

  7. Next Closest Time – หาเวลาถัดไปที่ใช้ตัวเลขเดิมใน C++

    ปัญหา: Next Closest Time กำหนดเวลาในรูปแบบ HH:MM หาเวลาถัดไปที่ ใกล้ที่สุด โดยใช้ เฉพาะตัวเลขที่มีอยู่ในเวลาเดิม (ซ้ำได้ไม่จำกัด) ตัวอย่าง Input: 19:34 → ตัวเลขที่มี: {1,9,3,4} Output: 19:39 (ไม่ใช่ 19:33 เพราะ 19:33 อยู่ในอดีต 23 ชม. 59 นาที) แนวทางแก้ปัญหา: Brute Force ทุกความเป็นไปได้ ข้อสังเก

  8. Number of Distinct Islands – นับเกาะที่แตกต่างกันใน C++

    ปัญหา: Number of Distinct Islands กำหนด Grid 2D (0 = น้ำ, 1 = บก) เกาะ = กลุ่ม 1 ติดกัน 4 ทิศทาง หาจำนวน เกาะที่แตกต่างกัน (distinct) เกาะเหมือนกัน = สามารถ เลื่อน (translate) ทับกันได้ (ไม่นับการหมุน/พลิก) ตัวอย่าง Grid: 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 Output: 3 (มีรูปทรงเกาะ 3 แบบ) แนว

  9. Search in a Sorted Array of Unknown Size – ค้นหาในอาร์เรย์ขนาดไม่รู้จัก C++

    ปัญหา: Search in a Sorted Array of Unknown Size อาร์เรย์เรียงเพิ่มขึ้น แต่ ขนาดไม่ทราบ เข้าถึงได้เฉพาะผ่าน ArrayReader.get(k) หา index ของ target ไม่เจอ → -1 ตัวอย่าง Array: [-1,0,3,5,9,12], target = 9 → Output: 4 แนวทางแก้ปัญหา: Exponential Search + Binary Search ขั้นตอน Exponential Search (หาข

  10. Insert into a Sorted Circular Linked List – แทรกค่าใน Circular Linked List เรียงลำดับ C++

    ปัญหา: Insert into a Sorted Circular Linked List กำหนดโหนดอ้างอิงจาก Circular Linked List ที่เรียงเพิ่มขึ้น แทรกค่า insertVal ให้ยังคงเป็น sorted circular list โหนดอ้างอิงอาจไม่ใช่หัว (head) ถ้ารายการว่าง → สร้างโหนดเดี่ยว circular ตัวอย่าง List: 3 → 4 → 1 → (กลับ 3), insertVal = 2 Result: 3 → 4 →

  11. Sentence Similarity II – ความคล้ายคลึงของประโยคแบบขยายได้ใน C++

    ปัญหา: Sentence Similarity II กำหนด 2 ประโยค words1, words2 และคู่คำที่คล้ายกัน pairs ตรวจสอบว่าประโยคทั้งสอง คล้ายกัน (similar) หรือไม่ กฎความคล้าย Symmetric: a ~ b ⟺ b ~ a Transitive: a ~ b และ b ~ c → a ~ c Reflexive: คำใดก็ตามคล้ายตัวเอง ประโยคคล้ายกันได้ก็ต่อเมื่อ ความยาวเท่ากัน และคำแต่ละคู่

  12. First Unique Number – หาตัวเลขที่ไม่ซ้ำตัวแรกในคิว C++

    ปัญหา: First Unique Number ออกแบบคลาส FirstUnique รองรับ: FirstUnique(nums) – เริ่มต้นด้วยอาร์เรย์ตัวเลข showFirstUnique() – คืนตัวเลขที่ไม่ซ้ำตัวแรกในคิว, ไม่มี → -1 add(value) – เพิ่มตัวเลขเข้าไปในคิว ตัวอย่าง Init: [2,3,5] showFirstUnique() → 2 add(5) → queue: [2,3,5,5] showFirstUnique() → 2

  13. Check Valid Sequence in Binary Tree – ตรวจสอบลำดับถูกต้องใน C++

    ปัญหา: Check If a String Is a Valid Sequence from Root to Leaves Path กำหนด Binary Tree และอาร์เรย์ arr ตรวจสอบว่า arr เป็น valid sequence หรือไม่ โดย valid sequence = ลำดับค่าจากรากถึงใบ (root-to-leaf path) ที่ตรงกับ arr ทุกตัว ตัวอย่าง Tree: 0 / \ 1 0 / \ / 0 1 0 \ / \

  14. Restore IP Addresses – เรียกคืนที่อยู่ IP ใน C++

    ปัญหา: Restore IP Addresses กำหนดสตริงตัวเลข בלבד ใส่จุด (.) เพื่อแบ่งเป็น 4 ส่วน แต่ละส่วนเป็นจำนวนเต็ม 0-255 ไม่มี leading zeros (ยกเว้น 0 เอง) หา ทุกความเป็นไปได้ ตัวอย่าง Input: 25525511135 Output: [255.255.11.135, 255.255.111.35] แนวทางแก้ปัญหา: Backtracking (DFS) ข้อสังเกต IP address มี 4

  15. Add One Row to Tree – เพิ่มแถวโหนดใน Binary Tree C++

    ปัญหา: Add One Row to Tree กำหนด Binary Tree, ค่า v, และความลึก d เพิ่มแถวโหนดใหม่ค่า v ที่ความลึก d (ราก = ความลึก 1) กฎการเพิ่ม d = 1: สร้างรากใหม่ค่า v, ต้นไม้เดิมเป็นลูกซ้าย 1: สำหรับโหนดทุกตัวที่ความลึก d-1 สร้างโหนดใหม่ 2 ตัวค่า v เป็นลูกซ้ายและลูกขวา ลูกซ้ายเดิม → เป็นลูกซ้ายของโหนดใหม่ซ้

  16. Redundant Connection – หาขอบซ้ำในกราฟต้นไม้ C++

    ปัญหา: Redundant Connection มีกราฟที่เริ่มต้นเป็น Tree (N โหนด, ไม่มี cycle) เพิ่มขอบ 1 ขอบเข้าไป → กลายเป็นกราฟที่มี cycle 1 วง หาขอบที่ลบออกได้เพื่อให้กลายเป็น Tree อีกครั้ง ถ้ามีหลายขอบ ให้คืน ขอบที่ปรากฎทีหลังสุด ในอินพุต ตัวอย่าง Edges: [[1,2], [2,3], [3,4], [1,4], [1,5]] Output: [1,4] (ขอบที่

  17. Cheapest Flights Within K Stops – หาเที่ยวบินราคาถูกที่สุดใน C++

    ปัญหา: Cheapest Flights Within K Stops มี n เมือง, m เที่ยวบิน แต่ละเที่ยวบิน: u → v ราคา w กำหนดเมืองต้นทาง src, ปลายทาง dst, และจำนวนจุดหยุดสูงสุด K หา ราคาต่ำสุด จาก src ไป dst โดยหยุดไม่เกิน K ครั้ง (คือใช้ขอบได้มากที่สุด K+1 ขอบ) ไม่มีเส้นทาง → คืน -1 ตัวอย่าง n = 3, flights = [[0,1,100],[1,2,

  18. All Nodes Distance K in Binary Tree – หาโหนดระยะ K จากเป้าหมายใน C++

    ปัญหา: All Nodes Distance K in Binary Tree กำหนด Binary Tree, โหนดเป้าหมาย (target), และจำนวนเต็ม K หา ค่าของโหนดทั้งหมดที่มีระยะห่าง K จาก target ระยะห่าง = จำนวนขอบ (edges) ในเส้นทาง ตัวอย่าง Tree: [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2 Output: [7, 4, 1] 3 / \ 5

  19. Predict the Winner – ทายผู้ชนะเกมเลือกตัวเลขใน C++

    ปัญหา: Predict the Winner มีอาร์เรย์คะแนน (non-negative integers) ผู้เล่น 2 คน สลับกันเลือกตัวเลขจาก ปลายซ้ายหรือปลายขวา ของอาร์เรย์ จนกว่าจะหมด ผู้ที่ได้คะแนนรวมมากกว่า ชนะ ทายว่าผู้เล่นคนแรกชนะได้หรือไม่ (สมมติทั้งคู่เล่น optimal) ตัวอย่าง [1, 5, 233, 7] P1 เลือก 1 (ซ้าย) → เหลือ [5, 233, 7] P2

  20. Longest Uncommon Subsequence II ใน C++

    ปัญหา: Longest Uncommon Subsequence II กำหนดรายการสตริง หา ความยาวของ subsequence ที่ไม่ซ้ำ (uncommon) ที่ยาวที่สุด Uncommon subsequence = subsequence ของสตริงหนึ่งที่ ไม่ใช่ subsequence ของสตริงอื่นใดในรายการ นิยาม Subsequence ลำดับที่ได้จากการลบตัวอักษรบางส่วน (อาจไม่ลบเลย) โดยไม่เปลี่ยนลำดับตัวอ

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:225/301  20-คอมพิวเตอร์/Page Goto:1 219 220 221 222 223 224 225 226 227 228 229 230 231