Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. ฟังก์ชัน iswctype() ใน C++ STL

    ภาพรวม iswctype() เป็นฟังก์ชันใน C++ Standard Library (header <cwctype> หรือ <wctype.h>) ใช้ตรวจสอบว่า Wide Character มีคุณสมบัติที่ระบุโดย desc หรือไม่ Syntax int iswctype(wint_t c, wctype_t desc); พารามิเตอร์ c - Wide character ที่ต้องการตรวจสอบ (ชนิด wint_t) desc - คุณสมบัต

  2. โจทย์ 4Sum ใน C++ (หา 4 ตัวที่รวมกันได้ Target)

    โจทย์ปัญหา ได้รับอาร์เรย์ n จำนวนเต็ม และค่า Target ให้หา ทุกชุดของ 4 ตัวเลข (Quadruplets) ที่ไม่ซ้ำกัน ที่มีผลรวมเท่ากับ Target ตัวอย่าง นำเข้า: nums = [-1,0,1,2,0,-2], target = 0 ผลลัพธ์: [[-1,0,0,1], [-2,-1,1,2], [-2,0,0,2]] แนวคิดการแก้ปัญหา (Generalized k-Sum) ขยายจาก 2Sum และ 3Sum โดยใช้ Rec

  3. การสลับโหนดคู่ใน Linked List (Swap Nodes in Pairs) ใน C++

    โจทย์ปัญหา ได้รับ Linked List ให้สลับโหนดที่อยู่ติดกันเป็นคู่ๆ (1↔2, 3↔4, ...) และคืนค่า Head ใหม่ ห้ามเปลี่ยนค่าในโหนด ต้องสลับโหนดเอง ตัวอย่าง นำเข้า: [1,2,3,4,5,6,7,8] ผลลัพธ์: [2,1,4,3,6,5,8,7] แนวคิดการแก้ปัญหา ใช้ Dummy Node ช่วยจัดการ Head node ได้ง่ายขึ้น และใช้ Pointer 3 ตัว: prev -

  4. การหารจำนวนเต็มสองจำนวนใน C++ (ไม่ใช้ *, /, %)

    โจทย์ปัญหา ได้รับจำนวนเต็มสองจำนวน dividend และ divisor ให้หาร dividend ด้วย divisor โดยไม่ใช้การคูณ การหาร และ modulo คืนค่าผลหาร (Quotient) โดยปัดทศนิยมเข้าสู่ศูนย์ ตัวอย่าง นำเข้า: dividend = 7, divisor = -3 ผลลัพธ์: -2 แนวคิดการแก้ปัญหา (Bit Manipulation) ใช้หลักการ Binary Long Division โดยการ

  5. จำนวนขั้นตอนสูงสุดในการแปลง 0 เป็น X ด้วย Bitwise AND ใน C++

    โจทย์ปัญหา ได้รับจำนวนเต็ม X ให้หาจำนวนขั้นตอนสูงสุดในการแปลงจาก 0 ไปเป็น X โดยแต่ละขั้นตอนต้องแปลงจาก A ไป B โดยที่ A != B และ A & B = A (Bitwise AND) ตัวอย่าง นำเข้า: X = 7 ผลลัพธ์: 3 ขั้นตอน: ขั้นตอน 1: 0 (000) → 1 (001) | 0≠1 และ 0&1=0 ขั้นตอน 2: 1 (001) → 3 (011) | 1≠3 และ 1&3=1

  6. ผลรวมเซิร์บอาร์เรย์สูงสุดหลังกลับเครื่องหมายสูงสุด 2 องค์ประกอบใน C++

    โจทย์ปัญหา ได้รับอาร์เรย์ ให้หาผลรวมเซิร์บอาร์เรย์สูงสุดหลังจากกลับเครื่องหมาย (invert) ขององค์ประกอบได้สูงสุด 2 ตัว ตัวอย่าง นำเข้า: array = {-5, 1, 3, 8, -2, 4, 7} ผลลัพธ์: 30 คำอธิบาย: เลือกเซิร์บอาร์เรย์ทั้งหมด (index 0-6) และกลับเครื่องหมาย -5 และ -2 ให้เป็น 5 และ 2 ผลรวม = 5+1+3+8+2+4+7 = 30

  7. ผลรวมเซิร์บอาร์เรย์สูงสุดจากการกลับเครื่องหมายสูงสุด K องค์ประกอบใน C++

    โจทย์ปัญหา ได้รับอาร์เรย์และจำนวนเต็ม k ให้หาผลรวมเซิร์บอาร์เรย์สูงสุดที่เป็นไปได้ โดยอนุญาตให้กลับเครื่องหมาย (บวก↔ลบ) ขององค์ประกอบได้สูงสุด k ตัว ตัวอย่าง นำเข้า: array = {1, -2, 7, 0}, k = 2 ผลลัพธ์: 10 คำอธิบาย: กลับเครื่องหมาย -2 ให้เป็น 2 ทำให้อาร์เรย์กลายเป็น {1, 2, 7, 0} ผลรวม = 10 แนวคิด

  8. ผลรวมเซิร์บอาร์เรย์สูงสุดของอาร์เรย์ที่ซ้ำ k ครั้งใน C++

    โจทย์ปัญหา ได้รับอาร์เรย์และตัวเลข k ให้สร้างอาร์เรย์ใหม่โดยการซ้ำอาร์เรย์เดิม k ครั้ง แล้วหาผลรวมเซิร์บอาร์เรย์สูงสุดของอาร์เรย์ใหม่นี้ ตัวอย่าง นำเข้า: array = {3, 5, 1}, k = 2 สร้างอาร์เรย์: {3, 5, 1, 3, 5, 1} ผลลัพธ์: 18 (3+5+1+3+5+1) แนวคิดการแก้ปัญหา คำนวณผลรวมทั้งหมดของอาร์เรย์เดิม (ar

  9. การหาผลรวมเซิร์บอาร์เรย์สูงสุดใน O(n) ด้วย Prefix Sum ใน C++

    โจทย์ปัญหา ได้รับอาร์เรย์ที่ประกอบด้วยจำนวนเต็มบวกและลบ ให้หาผลรวมเซิร์บอาร์เรย์ (Subarray) สูงสุดในอาร์เรย์ดังกล่าว ตัวอย่าง หากอาร์เรย์นำเข้าคือ {-12, -5, 4, -1, -7, 1, 8, -3} ผลลัพธ์จะเป็น 9 (มาจากเซิร์บอาร์เรย์ {4, -1, -7, 1, 8}) อัลกอริทึม คำนวณ Prefix Sum ของอาร์เรย์นำเข้า กำหนดค่าเ

  10. Maximum Subarray Sum Modulo M ใน C++

    ปัญหา มีอาร์เรย์ขนาด n และจำนวนเต็ม m หาค่าสูงสุดของ (ผลรวม Subarray) mod m ตัวอย่าง Array = {4, 9, 2}, m = 6 Subarrays: {4}: 4%6=4 {9}: 9%6=3 {2}: 2%6=2 {4,9}: 13%6=1 {9,2}: 11%6=5 ← Max {4,9,2}: 15%6=3 อัลกอริทึม (Prefix Sum + Ordered Set) คำนวณ Prefix Sum Modulo: prefix[i] = (prefix[i-1] + ar

  11. Maximum Subset with Bitwise OR Equal to K ใน C++

    ปัญหา มีอาร์เรย์จำนวนเต็มบวกและ k หา Subset ที่ยาวที่สุดซึ่ง Bitwise OR ของทุกสมาชิกเท่ากับ k ตัวอย่าง Array = [1, 4, 2], k = 3 Output: [1, 2] (1|2 = 3) อัลกอริทึม คุณสมบัติ Bitwise OR: 0|0=0, 1|0=1, 1|1=1 สำหรับบิตที่ k เป็น 0: ทุกสมาชิกใน subset ต้องมีบิตนั้นเป็น 0 สำหรับบิตที่ k เป็น 1: ต้องม

  12. Maximum Sum After Repeatedly Dividing N by a Divisor ใน C++

    ปัญหา มีจำนวนเต็ม N หารซ้ำๆ ด้วยตัวหารจนได้ 1 หาผลรวมของค่าทุกขั้นตอน (รวม N เริ่มต้น) ให้สูงสุด ตัวอย่าง N = 12 12/2=6, 6/2=3, 3/3=1 Sum = 12+6+3+1 = 22 ข้อสังเกต เพื่อให้ผลรวมสูงสุด ควรหารด้วย ตัวหารที่น้อยที่สุด (smallest divisor) ทุกครั้ง ตัวอย่างโค้ด C++ #include <bits/stdc++.h> using

  13. Maximum Sum by Adding Numbers with Same Set Bits Count ใน C++

    ปัญหา มีอาร์เรย์ N ตัวเลข หาผลรวมสูงสุดที่ได้จากการบวกตัวเลขที่มีจำนวน Set Bits (บิต 1) เท่ากัน ตัวอย่าง Array: {2, 5, 8, 9, 10, 7} Set bits: 2(1), 5(2), 8(1), 9(2), 10(2), 7(3) Group set bits=2: 5+9+10 = 24 (Max) อัลกอริทึม นับ set bits ของแต่ละตัวเลข (ใช้ Brian Kernighans Algorithm: n &= n-1)

  14. Maximum Sum Path in Right Number Triangle ใน C++

    ปัญหา มีสามเหลี่ยมจำนวนเต็ม (Right Triangle) หาเส้นทางจากยอดถึงฐานที่ให้ผลรวมสูงสุด เคลื่อนที่ได้แค่ลงตรงหรือลงขวา ตัวอย่าง 3 4 5 1 10 7 Max Sum = 18 (3+5+10) อัลกอริทึม (Dynamic Programming In-place) แถวที่ 1: เพิ่มค่าจากแถวบน (มีแค่ทางเดียว) แถว i (i≥2): ขอบซ้าย: triangle[i][0] +=

  15. Maximum Sum of Hourglass in Matrix ใน C++

    ปัญหา มีเมทริกซ์ หา Hourglass ที่มีผลรวมสูงสุด Hourglass เป็นรูป 7 เซลล์: X X X X X X X ตัวอย่าง Matrix 4x4: {2,4,0,0} {0,1,1,0} {4,2,1,0} {0,3,0,1} Max Hourglass Sum = 14 วิธีแก้ Hourglass เริ่มที่ (i,j) ประกอบด้วย: mat[i][j] mat[i][j+1] mat[i][j+2] mat[i+1][j+1] mat[i+2][j]

  16. Maximum Sum of i*arr[i] Among All Rotations ใน C++

    ปัญหา มีอาร์เรย์ arr หาค่าสูงสุดของ Σ(i × arr[i]) ในทุกการหมุน (rotation) ของอาร์เรย์ ตัวอย่าง arr = {4, 8, 1, 5} Rotations: {4,8,1,5}: 0×4+1×8+2×1+3×5 = 25 {8,1,5,4}: 0×8+1×1+2×5+3×4 = 23 {1,5,4,8}: 0×1+1×5+2×4+3×8 = 37 ← Max {5,4,8,1}: 0×5+1×4+2×8+3×1 = 23 วิธีง่าย (O(n²)) หมุนอาร์เรย์ n รอบ คำ

  17. Maximum Sum of Lengths of Non-Overlapping Subarrays with K as Max Element ใน C++

    ปัญหา มีอาร์เรย์และจำนวนเต็ม k หาผลรวมความยาวของ Subarray ที่ไม่ทับซ้อนกัน (non-overlapping) โดยที่ k เป็นค่าสูงสุดใน Subarray นั้น ตัวอย่าง array = {3, 7, 1, 2, 3, 1, 6, 3, 2, 5}, k = 3 Subarrays: {3} len=1, {1,2,3,1} len=4, {3,2} len=2 Sum = 1+4+2 = 7 อัลกอริทึม วนอ่านอาร์เรย์ ดัชนี i นับ suba

  18. Maximum Sum of Non-Leaf Nodes Among All Levels ใน Binary Tree (C++)

    ปัญหา มี Binary Tree หาผลรวมของโหนดที่ไม่ใช่ใบ (non-leaf nodes) ในแต่ละระดับ แล้วหาค่าสูงสุด ตัวอย่าง Level 1: 4, Level 2: 1+2=3, Level 3: 9 (4,7 เป็นใบ), Level 4: 0 → Max = 9 อัลกอริทึม (Level Order Traversal + Queue) ถ้า root == NULL → return 0 data Queue q, push root while q ไม่ว่าง: co

  19. Maximum Sum Path in Matrix - หาเส้นทางผลรวมสูงสุดในเมทริกซ์จากบนลงล่างใน C++

    ปัญหา มีเมทริกซ์ n×n แต่ละเซลล์มีค่า จากเซลล์ (i,j) ไปได้เฉพาะ (i+1,j-1) และ (i+1,j+1) หาเส้นทางจากแถวบนสุดถึงล่างสุดที่ให้ผลรวมสูงสุด ตัวอย่าง Matrix: {5, 6, 1, 17} {-2, 10, 8, -1} {3, -7, -9, 4} {12, -4, 2, 2} Max Sum = 31 (17+8+4+2) อัลกอริทึม (Dynamic Programming Bottom-up) dp[n-1][j] = mat[

  20. Maximum Sum Path in Two Arrays - หาเส้นทางผลรวมสูงสุดระหว่างสองอาร์เรย์ใน C++

    ปัญหา ได้รับอาร์เรย์จัดเรียง 2 ชุด อาจมีค่าร่วมกัน หาผลรวมสูงสุดของเส้นทางจากต้นทางของอาร์เรย์ใดอาร์เรย์หนึ่ง ไปปลายทางของอาร์เรย์ใดอาร์เรย์หนึ่ง สลับอาร์เรย์ได้เฉพาะที่ค่าร่วมกัน ตัวอย่าง arr1[] = {2, 3, 7, 10, 12} arr2[] = {1, 5, 7, 8} Output: 35 (1+5+7+10+12) อัลกอริทึม (Merge-like Process) i

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:130/301  20-คอมพิวเตอร์/Page Goto:1 124 125 126 127 128 129 130 131 132 133 134 135 136