Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. ความยาวสูงสุดของเซกเมนต์ 0 และ 1 ใน C++

    คำอธิบายปัญหากำหนดสตริงที่ประกอบด้วย 0 และ 1 งานคือการหาความยาวสูงสุดของเซกเมนต์ของสตริงที่จำนวน 1 ในแต่ละเซกเมนต์มากกว่า 0ตัวอย่างถ้าสตริงนำเข้าคือ 10111000001011 คำตอบจะเป็น 12 ดังนี้:เซกเมนต์แรกมีความยาว 7: 10111000001011เซกเมนต์ที่สองมีความยาว 5: 10111000001011ความยาวรวมคือความยาวของ (เซกเมนต์ 1

  2. ความยาวสูงสุดของซับอาร์เรย์ที่องค์ประกอบแรกและสุดท้ายเหมือนกันใน C++

    คำอธิบายปัญหาในปัญหานี้ เราได้รับอาร์เรย์ของตัวอักษร งานของเราคือสร้าง โปรแกรมเพื่อพิมพ์ความยาวสูงสุดของซับอาร์เรย์ที่องค์ประกอบแรกและสุดท้ายเหมือนกันใน C++ตัวอย่างนำเข้า – array = {t, u, t, o, r, i, a, l, s, p, o, i, n, t }ผลลัพธ์ – 14คำอธิบาย –ซับอาร์เรย์ {t, u, t, o, r, i, a, l, s, p, o, i, n, t

  3. ค่าส่วนเหลือสูงสุดของทุกคู่ในอาร์เรย์ที่ arr[i] >= arr[j] ใน C++

    คำอธิบายปัญหาในปัญหานี้ เราได้รับอาร์เรย์ที่มี n องค์ประกอบ งานของเราคือสร้าง โปรแกรมเพื่อหาค่าส่วนเหลือ (modulo) สูงสุดของทุกคู่ในอาร์เรย์ที่ arr[i] >= arr[j]ที่นี่ เราต้องหาค่าสูงสุดของ arr[i] % arr[j] โดยที่ arr[i] >= arr[j]ตัวอย่างนำเข้า – arr[] = {3, 5, 9}ผลลัพธ์ – 4คำอธิบาย –คู่ที่เป็นไป

  4. จำนวนทีม 3 คนสูงสุดที่จัดได้จากสองกลุ่มใน C++

    คำอธิบายปัญหาในปัญหานี้ เราได้รับจำนวนเต็มสองจำนวน N และ M โดย N คือจำนวนคนในกลุ่ม 1 และ M คือจำนวนคนในกลุ่ม 2 งานของเราคือสร้างโปรแกรมเพื่อหาจำนวนทีม 3 คนสูงสุดที่จัดได้จากสองกลุ่มเราจะสร้างทีม 3 คนโดยเลือกคนจากกลุ่มเหล่านี้ เพื่อให้ได้ทีมมากที่สุด แต่ละทีมต้องมีคนอย่างน้อย 1 คนจากแต่ละกลุ่มตัวอย่า

  5. จำนวนขอบสูงสุดในกราฟแบ่งสองส่วน (Bipartite Graph) ใน C++

    คำอธิบายปัญหากำหนดจำนวนเต็ม N ซึ่งแทนจำนวนโหนด (Vertices) งานคือการหาจำนวนขอบสูงสุดที่เป็นไปได้ในกราฟแบ่งสองส่วน (Bipartite graph) ที่มี N โหนดกราฟแบ่งสองส่วน (Bipartite Graph)กราฟแบ่งสองส่วนคือกราฟที่มี 2 เซตของโหนดเซตเหล่านี้มีลักษณะที่โหนดในเซตเดียวกันจะไม่มีขอบเชื่อมต่อกันตัวอย่างถ้า N = 10 จะมี

  6. จำนวนขอบสูงสุดที่เพิ่มเข้าไปในต้นไม้เพื่อให้ยังคงเป็นกราฟแบ่งสองส่วนได้ใน C++

    คำอธิบายปัญหาต้นไม้ (tree) เสมอเป็นกราฟแบ่งสองส่วน (Bipartite Graph) เนื่องจากเราสามารถแบ่งเป็นสองเซตที่ไม่ซ้อนทับกันด้วยระดับสลับกันได้กล่าวอีกนัยหนึ่ง เราสามารถระบายสีด้วยสองสีได้ โดยระดับสลับกันจะมีสีเดียวกัน งานคือการคำนวณจำนวนขอบสูงสุดที่สามารถเพิ่มเข้าไปในต้นไม้ได้ เพื่อให้ยังคงเป็นกราฟแบ่งสอง

  7. จำนวนจุดคงที่สูงสุดโดยใช้การสลับได้สูงสุด 1 ครั้งใน C++

    คำอธิบายปัญหากำหนดการเรียงลำดับของ N องค์ประกอบจาก 0 ถึง N-1 จุดคงที่ (fixed point) คือดัชนีที่ค่าของมันเท่ากับดัชนี คือ arr[i] = i คุณได้รับอนุญาตให้ทำการสลับ (swap) ได้สูงสุด 1 ครั้ง หาจำนวนจุดคงที่สูงสุดที่สามารถได้รับตัวอย่างถ้าอาร์เรย์นำเข้าคือ {0, 1, 2, 3, 4, 6, 5} คำตอบคือ 7เพื่อปรับจุดคงที่

  8. Maximum Unique Integers in Subarray: จำนวน Unique สูงสุดใน Subarray ขนาด M ใน C++

    ปัญหา กำหนดอาร์เรย์ขนาด n และ M หา จำนวน Unique Integers สูงสุด ใน Subarray ขนาด M ใดๆ ตัวอย่าง: arr=[4,1,2,1,4,3], M=4 [4,1,2,1] → Unique: {4,1,2} = 3 [1,2,1,4] → Unique: {1,2,4} = 3 [2,1,4,3] → Unique: {2,1,4,3} = 4 ← Max แนวคิด: Sliding Window + Hash Map Algorithm สร้าง Window ขนาด M แรก นั

  9. Maximum OR Sum of Sub-arrays: ผลรวม OR สูงสุดของ Sub-arrays สองอาร์เรย์ใน C++

    ปัญหา กำหนดอาร์เรย์ 2 ตัว arr1, arr2 เลือก Subarray ขนาดเท่ากันจากแต่ละอาร์เรย์ ให้ OR Sum = (OR ของ Subarray1) + (OR ของ Subarray2) สูงสุด ตัวอย่าง: arr1=[1,2,4,3,2], arr2=[1,3,3,12,2] → Subarrays: [2,4,3] และ [3,3,12] → OR1=7, OR2=15 → Sum=22 ข้อสังเกตสำคัญ OR Operation เป็น Monotonic: เพิ่ม Ele

  10. Maximum Path Sum in Binary Tree: ผลรวมเส้นทางสูงสุดระหว่างใบสองใบใน C++

    ปัญหา กำหนด Binary Tree หา Maximum Path Sum ระหว่างใบ (Leaf) สองใบ เส้นทางอาจ/อาจไม่ผ่าน Root ตัวอย่าง: Tree ด้านล่าง → Max Sum = 24 (Path: 2→5→6→-2→4→9) แนวคิด: Post-order Traversal + Global Maximum Recursive Function maxPathSumLeaf(node, &maxSum) คืนค่า: Max Sum จาก Node นี้ลงใบใดใบหนึ่ง Side e

  11. Maximum Path Sum in a Triangle: ผลรวมเส้นทางสูงสุดในสามเหลี่ยมใน C++

    ปัญหา กำหนดตัวเลขเรียงเป็น Triangle (แถวแรก 1 ตัว, เพิ่มทีละ 1 จน n ตัว) หา Maximum Path Sum จากยอดลงฐาน เคลื่อนที่ได้ซ้าย-ล่างหรือขวา-ล่าง ตัวอย่าง: 1 5 6 8 2 9 Path: 1 → 6 → 9 = 16 แนวคิด: Dynamic Programming (Bottom-Up) แปลงเป็น Matrix (Left-Aligned + Zero Padding) 1 0 0 5 6 0 8 2 9

  12. Maximum Path Sum in Inverted Triangle: ผลรวมเส้นทางสูงสุดในสามเหลี่ยมผกผันใน C++

    ปัญหา กำหนดตัวเลขเรียงเป็น Inverted Triangle (แถวแรก n ตัว, แถวถัดไป n-1, ... จน 1 ตัว) หา Maximum Path Sum จากแถวล่างสุดขึ้นบนสุด โดยเคลื่อนที่ได้เฉพาะซ้ายหรือขวา ตัวอย่าง: 5 1 9 3 6 2 Path: 2 → 6 → 9 = 17 (Max) แนวคิด: Dynamic Programming (Bottom-Up) แปลงเป็น Matrix Shift ซ้าย + เติม 0:

  13. Convert Substrings of Length k from Base b to Decimal: แปลง Substring ความยาว k จากฐาน b เป็นฐานสิบใน C++

    ปัญหา กำหนดสตริงตัวเลข str ความยาว k และฐาน b หา Substrings ความยาว k ทุกตัว แปลงจากฐาน b เป็นฐานสิบ (Decimal) ตัวอย่าง: str=12212, k=3, b=3 122₃ = 1×9 + 2×3 + 2 = 17 221₃ = 2×9 + 2×3 + 1 = 25 212₃ = 2×9 + 1×3 + 2 = 23 อัลกอริทึม วน i = 0 ถึง str.length() - k Extract Substring str.substr(i, k)

  14. แปลง Binary Tree ให้เป็น Tree ที่มี Children Sum Property ใน C++

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมแปลง binary tree ให้เป็น tree ที่มี children sum property สำหรับนี้ เราจะได้รับ binary tree งานของเราคือแปลงมันเป็น binary tree ที่ follow children sum property แต่มีข้อจำกัดคือเราสามารถเพิ่มค่าในโหนดได้เท่านั้น ไม่สามารถเปลี่ยนโครงสร้าง tree หรือลดค่าในโหนดได้ โปร

  15. แปลง Array เป็น Circular Doubly Linked List ใน C++

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมแปลง array เป็น circular doubly linked list สำหรับนี้ เราจะได้รับ array งานของเราคือนำสมาชิกของ array ไปแปลงเป็น circular doubly linked list โปรแกรมตัวอย่าง data; return 1; } } // แปลง array เป็น linked list void convert_array(int arr[], int n, struct

  16. แปลง Array ให้เป็น Reduced Form (Hashing) ใน C++

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมแปลง array ให้เป็น reduced form โดยใช้ hashing สำหรับนี้ เราจะได้รับ array งานของเราคือแปลง array ให้เป็น reduced form ที่มีสมาชิกอยู่ในช่วง 0 ถึง n-1 เท่านั้น โปรแกรมตัวอย่าง #include <bits/stdc++.h> using namespace std; // แปลง array เป็น reduced form voi

  17. แปลง Array ให้เป็น Reduced Form (ใช้ Vector of Pairs) ใน C++

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมแปลง array ให้เป็น reduced form โดยใช้ vector of pairs สำหรับนี้ เราจะได้รับ array งานของเราคือแปลง array ให้เป็น reduced form ที่มีสมาชิกอยู่ในช่วง 0 ถึง n-1 เท่านั้น โปรแกรมตัวอย่าง #include <bits/stdc++.h> using namespace std; // แปลง array เป็น reduced

  18. แปลง Array ให้เป็น Zig-Zag Fashion ใน C++

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมแปลง array ให้เป็น zig-zag fashion สำหรับนี้ เราจะได้รับ array ที่มีสมาชิกไม่ซ้ำกัน งานของเราคือจัดเรียงสมาชิกของ array ให้เป็น zig zag fashion โดยมีสมาชิกมากกว่าและน้อยกว่าสลับกันเทียบกับสมาชิกก่อนหน้า โปรแกรมตัวอย่าง #include <iostream> using namespace std

  19. แปลง BST เป็น Max Heap ใน C++

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมแปลง binary search tree เป็น max heap สำหรับนี้ เราจะได้รับ binary search tree งานของเราคือแปลง BST ที่กำหนดให้เป็น max heap โดยที่เงื่อนไขของ BST ยังคงเป็นจริงเมื่อเปรียบเทียบองค์ประกอบกับตัวเอง โปรแกรมตัวอย่าง right = getNode(7); convert_maxheap(root); c

  20. แปลง BST เป็น Min Heap ใน C++

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมแปลง binary search tree เป็น min heap สำหรับนี้ เราจะได้รับ binary search tree งานของเราคือแปลง BST ที่กำหนดให้เป็น min heap โดยที่เงื่อนไขของ BST ยังคงเป็นจริงเมื่อเปรียบเทียบองค์ประกอบกับตัวเอง โปรแกรมตัวอย่าง right = getNode(7); convert_minheap(root); c

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:119/301  20-คอมพิวเตอร์/Page Goto:1 113 114 115 116 117 118 119 120 121 122 123 124 125