Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. หาพจน์ที่ N ของอนุกรม 2, 12, 28, 50, 77, 112, 152, 198,... ใน C++

    หาพจน์ที่ N ของอนุกรม: 2, 12, 28, 50, 77, 112, 152, 198, ... ตัวอย่าง: N = 6 → 112 วิธีแก้ปัญหา (Quadratic Formula) อนุกรมเพิ่มขึ้นแบบพาราโบลิก สูตรทั่วไปเป็นสมการกำลังสอง: TN = 3×N² + N - 2 ตัวอย่างโค้ด C++ #include <iostream> using namespace std; int findNTerm(int N) { int nthTerm =

  2. Complex Number Multiplication คูณจำนวนเชิงซ้อนใน C++

    ให้สตริง 2 ตัวแทนจำนวนเชิงซ้อน แปลงและคูณกัน แล้วคืนผลลัพธ์เป็นสตริง ตัวอย่าง: 1+-1i และ 1+-1i → 0+-2i วิธีแก้ปัญหา (Parse + Formula) แปลงสตริง a, b เป็นคู่ (real, imaginary) ด้วยฟังก์ชัน parse คำนวณ: x = a.real*b.real - a.img*b.img, y = a.real*b.img + a.img*b.real คืนค่า x+yi ตัวอย่างโค้ด C++

  3. Minimum Time Difference หาความต่างเวลาน้อยที่สุดใน C++

    ให้ลิสต์เวลาในรูปแบบ Hour:Minutes 24 ชั่วโมง หาความต่างน้อยที่สุดในหน่วยนาทีระหว่างเวลาใดๆ สองเวลาในลิสต์ ตัวอย่าง: [12:30,15:17] → 167 นาที วิธีแก้ปัญหา (Bucket Sort / Boolean Array) สร้างอาร์เรย์ ok ขนาด 24*60+1 = 1441 ทั้งหมด false วนแปลงแต่ละเวลาเป็นนาที (hr*60 + min): ถ้า ok[time] เป็น true

  4. Optimal Division หาสมการหารให้ค่าสูงสุดใน C++

    ให้ลิสต์จำนวนเต็มบวก การหารติดกัน เช่น [2,3,4] → 2/3/4 สามารถใส่วงเล็บได้เพื่อเปลี่ยนลำดับการคำนวณ ต้องการหาวิธีใส่วงเล็บให้ได้ค่าสูงสุด และคืนค่าเป็นสตริงนิพจน์ (ไม่มีวงเล็บซ้ำ) ตัวอย่าง: [1000,100,10,2] → 1000/(100/10/2) วิธีแก้ปัญหา (Mathematical Insight) เพื่อให้ค่าสูงสุด ต้องหารตัวแรกด้วยผลลั

  5. Next Greater Element III หาตัวเลขถัดไปใน C++

    ให้จำนวนเต็มบวก 32-bit n หาตัวเลข 32-bit ที่น้อยที่สุดซึ่งมีหลักตัวเลขเหมือน n ทุกประการแต่มากกว่า n หากไม่มีให้คืน -1 ตัวอย่าง: 213 → 231 วิธีแก้ปัญหา (Next Permutation Logic) แปลง n เป็นสตริง s, sz = ความยาว, ok = false วน i จาก sz-2 ลง 0: ถ้า s[i] < s[i+1] → ok = true, break ถ้า !ok → คืน -

  6. Array Nesting หาความยาวชุดสูงสุดใน C++

    ให้อาร์เรย์ A ขนาด N มีค่า 0 ถึง N-1 ครบหมด ต้องการหาความยาวสูงสุดของชุด S โดย S[i] = {A[i], A[A[i]], A[A[A[i]]], ...} หยุดก่อนที่จะมีค่าซ้ำ ตัวอย่าง: A = [5,4,0,3,1,6,2] → output = 4 วิธีแก้ปัญหา (DFS + Cycle Detection) สร้างฟังก์ชัน dfs(node, arr, v, visited): ถ้า node ถูกเยี่ยมแล้ว → return ใ

  7. นับจำนวน Triplet ที่สร้างสามเหลี่ยมได้ใน C++

    ให้อาร์เรย์จำนวนเต็มบวกหรือศูนย์ นับจำนวน triplet ที่เลือกมาสามารถสร้างสามเหลี่ยมได้ (ผลรวมของด้านสองด้านมากกว่าด้านที่สาม) ตัวอย่าง: [2,2,3,4] → 3 triplet คือ [2,3,4] (ใช้ 2 ตัวแรก), [2,3,4] (ใช้ 2 ตัวที่สอง), [2,2,3] วิธีแก้ปัญหา (Sort + Two Pointers) เรียงอาร์เรย์ nums จากน้อยไปมาก กำหนด ret =

  8. ปัญหา 2 Keys Keyboard ใน C++

    มีตัวอักษร A อยู่ใน notepad เพียงตัวเดียว สามารถทำ 2 การดำเนินการ: Copy All: คัดลอกตัวอักษรทั้งหมดบน notepad Paste: วางตัวอักษรที่คัดลอกไว้ล่าสุด ต้องการให้ได้ A ทั้งหมด n ตัว โดยใช้จำนวนขั้นตอนน้อยที่สุด หาจำนวนขั้นตอนขั้นต่ำ ตัวอย่าง: n = 3 → 3 ขั้นตอน (เริ่ม A → Copy → Paste ได้ AA → Paste อี

  9. หา Subtree ซ้ำในต้นไม้แบบทวิภาคใน C++

    ให้ต้นไม้แบบทวิภาค ต้องการหา subtree ที่ซ้ำกันทั้งหมด สำหรับแต่ละประเภทของ subtree ที่ซ้ำ ให้คืน root node ของตัวแทนหนึ่งตัว ตัวอย่าง: ต้นไม้ที่มีโครงสร้างซ้ำกัน จะได้ subtree ซ้ำ 2 แบบ วิธีแก้ปัญหา (Tree Serialization + Hash Map) สร้างอาร์เรย์ ret เก็บผลลัพธ์ และ map m นับจำนวน สร้างฟังก์ชันเวีย

  10. พิมพ์ต้นไม้แบบทวิภาคในรูปแบบ 2D String Array ใน C++

    แสดงต้นไม้แบบทวิภาคในอาร์เรย์สตริง 2 มิติขนาด m×n ตามกฎ: จำนวนแถว m = ความสูงของต้นไม้ จำนวนคอลัมน์ n = เลขคี่เสมอ รากอยู่กลางแถวแรกพอดี พื้นที่ที่เหลือแบ่งเป็นซ้าย-ล่างและขวา-ล่างขนาดเท่ากัน พิมพ์ subtree ซ้ายในส่วนซ้าย-ล่าง และ subtree ขวาในส่วนขวา-ล่าง ช่องว่างเติมสตริงว่าง ตัวอย่างต้นไม้ inpu

  11. แบ่งอาร์เรย์เป็นลำดับต่อเนื่องใน C++

    ให้อาร์เรย์ nums เรียงจากน้อยไปมาก ต้องการตรวจสอบว่าสามารถแบ่งเป็น 1 หรือหลาย subsequences ได้หรือไม่ โดยแต่ละ subsequence ต้องเป็นจำนวนเต็มต่อเนื่องและมีความยาวอย่างน้อย 3 ตัวอย่าง: [1,2,3,3,4,4,5,5] → true เพราะแบ่งได้เป็น [1,2,3,4,5] และ [3,4,5] วิธีแก้ปัญหา (Greedy + Hash Map) สร้าง map m เก็

  12. สร้างอาร์เรย์ Beautiful Arrangement II ใน C++

    ให้จำนวนเต็ม n และ k ต้องสร้างลิสต์ที่มี n จำนวนเต็มบวกต่างกันจาก 1 ถึง n โดยที่ลิสต์ของความต่างสัมบูรณ์ระหว่างสมาชิกติดกันมีค่าที่ไม่ซ้ำกัน k ค่า ตัวอย่าง: n = 3, k = 2 → ผลลัพธ์ [1,3,2] ความต่างคือ [2,1] มีค่าที่ไม่ซ้ำกัน 2 ค่า คือ 1 และ 2 วิธีแก้ปัญหา (Two Pointers) สร้างอาร์เรย์ ret ว่าง ใช้ต

  13. ปัญหาสลับสถานะหลอดไฟ Bulb Switcher II ใน C++

    มีห้องที่มีหลอดไฟ n ดวงเปิดอยู่ทั้งหมด และมีปุ่ม 4 ปุ่ม หลังจากกดปุ่มทั้งหมด m ครั้ง (ไม่ทราบลำดับ) ต้องการหาจำนวนรูปแบบสถานะของหลอดไฟที่เป็นไปได้ หลอดไฟมีหมายเลข 1,2,3...,n ฟังก์ชันของปุ่ม 4 ปุ่ม: ปุ่ม 1: สลับหลอดไฟทั้งหมด ปุ่ม 2: สลับหลอดไฟเลขคู่ ปุ่ม 3: สลับหลอดไฟเลขคี่ ปุ่ม 4: สลับหลอดไฟเลข (3k

  14. ความน่าจะเป็นของการเดินของม้าบนกระดานหมากรุกใน C++

    กำหนดกระดานหมากรุกขนาด NxN ม้าเริ่มต้นที่แถว r และคอลัมน์ c พยายามเดิน K ครั้ง แถวและคอลัมน์เริ่มจาก 0 (มุมซ้ายบนคือ (0,0) มุมขวาล่างคือ (N-1,N-1)) ม้าเดินได้ 8 ทิศทาง ตามรูปด้านล่าง: ทุกครั้งที่ม้าเดิน จะเลือก 1 ใน 8 ทิศทางแบบสุ่ม ม้าเดินต่อจนกว่าจะครบ K ครั้งหรือเดินออกนอกกระดาน ต้องการหาความน่

  15. หาตัวเลขที่มีหลักเพิ่มขึ้นเรื่อยๆ น้อยที่สุดใน C++

    ให้จำนวนเต็มบวก N หาตัวเลขที่มากที่สุดซึ่งน้อยกว่าหรือเท่ากับ N และมีหลักตัวเลขเรียงเพิ่มขึ้นเรื่อยๆ (แต่ละคู่ของหลักที่อยู่ติดกัน x และ y ต้องมี x ≤ y) ตัวอย่างเช่น หาก input = 332 ผลลัพธ์จะเป็น 299 วิธีแก้ปัญหา แปลง N เป็นสตริง s, กำหนด i = 1, n = ความยาวของ s วนลูป while i < n และ s[i] ≥ s[i-1]

  16. หาจำนวนขั้นตอนน้อยที่สุดเพื่อไปถึงเป้าหมายบนเส้นจำนวนใน C++

    สมมติว่าคุณยืนอยู่ที่ตำแหน่ง 0 บนเส้นจำนวนอนันต์ โดยมีเป้าหมายอยู่ที่ตำแหน่ง target ในแต่ละขั้นตอนที่ n (เริ่มจาก 1) คุณสามารถเดินไปทางซ้ายหรือขวาได้ n ก้าว เราต้องหาจำนวนขั้นตอนน้อยที่สุดที่จำเป็นเพื่อไปถึงจุดหมาย ตัวอย่างเช่น หาก target = 3 จำเป็นต้องใช้ 2 ขั้นตอน: จาก 0 ไป 1 แล้วจาก 1 ไป 3 วิธี

  17. Global and Local Inversions: การผกผันส่วนกลางและส่วนท้องถิ่นใน C++

    ปัญหา Permutation A ของ [0, 1, ..., N-1] Global Inversions: คู่ (i,j) ที่ i < j และ A[j] Local Inversions: คู่ (i, i+1) ที่ A[i+1] ทุก Local Inversion เป็น Global Inversion หาเงื่อนไขที่ Global = Local (คือ ไม่มี Global Inversion ที่ไม่ใช่ Local) ตัวอย่าง: [1,0,2] → Local: (1,0) 1 คู่, Global:

  18. สัญลักษณ์ที่ K ในไวยากรณ์ (K-th Symbol in Grammar) ใน C++

    แถวแรก: 0 แถวถัดไป: 0→01, 1→10 หาสัญลักษณ์ที่ K (1-indexed) ในแถว N ตัวอย่าง Input − N=4, K=5 Output − 1 คำอธิบาย − Row 1: 0, Row 2: 01, Row 3: 0110, Row 4: 01101001 → ตัวที่ 5 คือ 1 แนวทางการแก้ปัญหา (Recursive / Bit Count) สังเกต: ค่าที่ K ขึ้นอยู่กับจำนวน 1 ใน binary ของ K-1 (parity) หรือ recu

  19. Rabbits in Forest: กระต่ายในป่าใน C++

    ปัญหา กระต่ายแต่ละตัวบอกว่ามีอีกกี่ตัวที่มีสีเดียวกัน (คำตอบใน Array answers) หา จำนวนกระต่ายน้อยที่สุด ในป่า ตัวอย่าง: [1,1,2] → 5 ตัว สองตัวตอบ 1 → อาจเป็นสีเดียวกัน (2 ตัว) ตัวตอบ 2 → ต้องมีอีก 2 ตัวสีเดียวกัน (รวม 3 ตัว) → 2+3=5 แนวคิด: Grouping by Answer Logic ถ้ากระต่ายตอบ x → กลุ่มสีนั้นมี

  20. Escape The Ghosts: หนีผีใน C++

    ปัญหา เล่น Pacman เริ่มที่ (0,0) เป้าหมาย target มีผีหลายตัวที่ ghosts[i] ทุกรอบเคลื่อนที่ 1 ช่อง (N/E/W/S) พร้อมกัน หนีได้ถ้าถึง Target ก่อน ผีทุกตัว (ถึงพร้อมกัน = แพ้) คืน True/False ตัวอย่าง: ghosts=[[1,0],[0,3]], target=[0,1] → True (เราไป (0,1) ใช้ 1 Turn, ผีไปไม่ทัน) ข้อสังเกตสำคัญ Manhatta

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:171/301  20-คอมพิวเตอร์/Page Goto:1 165 166 167 168 169 170 171 172 173 174 175 176 177