Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. คู่นักรักจับมือกันใน C++

    สมมติว่ามี N คู่นักรักนั่งบนที่นั่ง 2N ที่จัดเรียงเป็นแถว ต้องการจับมือกัน เราต้องหาจำนวนการสลับที่น้อยที่สุดเพื่อให้ทุกคู่นั่งติดกัน คนและที่นั่งแทนด้วยตัวเลข 0 ถึง 2N-1 คู่เรียงลำดับ (0,1), (2,3), ..., (2N-2, 2N-1) การจัดที่นั่งเริ่มต้นให้โดยอาร์เรย์ row โดย row[i] คือคนที่นั่งที่ i เช่น [0,2,4,1

  2. จำนวนชั่นกสูงสุดเพื่อจัดเรียง II ใน C++

    สมมติว่าเรามีอาร์เรย์ arr ของจำนวนเต็ม เราต้องแบ่งอาร์เรย์เป็นชั่นก (partitions) จำนวนหนึ่ง แล้วจัดเรียงแต่ละชั่นกแยกกัน หลังจากต่อกันจะได้อาร์เรย์ที่จัดเรียงแล้ว เราต้องหาจำนวนชั่นกสูงสุดที่ทำได้ เช่น [3,2,4,5,5] เอาต์พุตคือ 4 เพราะแบ่งได้ [3,2], [4], [5], [5] = maxOfLeft[i] ตัวอย่าง #include <

  3. ปริศนาสไลด์ใน C++

    สมมติว่าเรามีกระดาน 2x3 มีกระเบื้อง 5 ชิ้น แทนด้วยตัวเลข 1-5 และช่องว่าง 1 ชิ้น แทนด้วย 0 การเคลื่อนที่คือการสลับ 0 กับตัวเลขที่ติดกัน (บน, ล่าง, ซ้าย, ขวา) จะถือว่าแก้เสร็จเมื่อเรียงเป็น [[1,2,3],[4,5,0]] ให้กระดานปริศนา เราต้องหาจำนวนการเคลื่อนที่น้อยที่สุดเพื่อแก้ปริศนา หากแก้ไม่ได้คืน -1 เช่น [

  4. อิฐตกเมื่อถูกตีใน C++

    สมมติว่าเรามีกริดค่าบายนารี (0 และ 1) โดย 1 แทนอิฐ อิฐจะไม่ตกหากตรงตามเงื่อนไข − อยู่ติดขอบบนของกริดโดยตรง หรือมีอิฐติดกัน (บน, ล่าง, ซ้าย, ขวา) อย่างน้อยหนึ่งก้อนที่ไม่ตก เราจะทำการลบอิฐตามลำดับ ในแต่ละครั้งลบอิฐที่ตำแหน่ง (i, j) อิฐที่อยู่ที่นั่นจะหายไป และอิฐอื่นอาจตกตามมา เราต้องหาเมทริกซ์ที่แส

  5. การสร้างเกาะขนาดใหญ่ที่สุดใน C++

    สมมติว่าเรามีกริด 2D ของค่าบайนารี (0 และ 1) เราสามารถเปลี่ยน 0 สูงสุดหนึ่งตัวเป็น 1 หลังจากนั้นเราต้องหาว่าขนาดของเกาะที่ใหญ่ที่สุดคือเท่าไร เกาะคือกลุ่มของ 1 ที่เชื่อมต่อกันใน 4 ทิศทาง (บน, ล่าง, ซ้าย, ขวา) เช่น หากอินพุตคือ [[1, 0], [0, 1]] เอาต์พุตจะเป็น 3 เพราะถ้าเราเปลี่ยน 0 หนึ่งตัวเป็น 1 แล

  6. นับตัวอักษรที่ไม่ซ้ำกันของทุกสตริงย่อยใน C++

    สมมติว่าเราต้องการกำหนดฟังก์ชันชื่อ countUniqueChars(s) ที่จะคืนจำนวนตัวอักษรที่ไม่ซ้ำกันใน s เช่นถ้า s = HELLOWORLD แล้ว H, E, W, R, D คือตัวอักษรที่ไม่ซ้ำเพราะปรากฏครั้งเดียว ดังนั้น countUniqueChars(s) = 5 ในโจทย์นี้ กำหนดสตริง s เราต้องหาผลรวมของ countUniqueChars(t) โดยที่ t เป็นสตริงย่อยของ s

  7. โปรแกรมหาการเริ่มต้นก่อนในการแข่งขันวิ่งใน C++

    ในโจทย์นี้ เราได้รับจำนวนเต็มสองจำนวนที่ให้การเริ่มต้นก่อนที่ A ให้กับ B และ C ตามลำดับในการแข่งขันวิ่ง 100 เมตร งานของเราคือการสร้าง โปรแกรมหาการเริ่มต้นก่อนในการแข่งขันวิ่งใน C++ คำอธิบายโค้ด − ที่นี่มีการเริ่มต้นก่อนที่ A ให้กับ B และ A ให้กับ C ตามลำดับในการแข่งขัน 100 เมตร เราต้องหาการเริ่มต้น

  8. พื้นที่สี่เหลี่ยมผืนผ้า II ใน C++

    สมมติว่าเรามีรายการของสี่เหลี่ยมผืนผ้า (axis-aligned) ที่นี่แต่ละ rectangle[i] = {x1, y1, x2, y2} โดยที่ (x1, y1) คือจุดมุมล่างซ้าย และ (x2, y2) คือจุดมุมบนขวาของสี่เหลี่ยมผืนผ้าลำดับที่ i เราต้องหาพื้นที่รวมที่ถูกครอบคลุมโดยสี่เหลี่ยมผืนผ้าทั้งหมดในระนาบ คำตอบอาจใหญ่มาก จึงสามารถใช้โมดูล로 10^9 + 7

  9. โปรแกรมหาเลขซ่อนใน C++

    ในโจทย์นี้ เราได้รับอาร์เรย์ arr[] ที่ประกอบด้วยค่าจำนวนเต็ม n ค่า งานของเราคือการสร้าง โปรแกรมหาเลขซ่อนใน C++ คำอธิบายโค้ด − สำหรับอาร์เรย์ เลขซ่อนคือตัวเลขที่เมื่อนำไปลบกับแต่ละองค์ประกอบของอาร์เรย์แล้วผลรวมเท่ากับ 0 มาดูตัวอย่างเพื่อเข้าใจปัญหา อินพุต arr[] = {4, 1, 6, 7, 2} เอาต์พุต 4 การลบ 4 จ

  10. โปรแกรมหามุมภายในและมุมภายนอกของรูปหลายเหลี่ยมปกติใน C++

    ในโจทย์นี้ เราได้รับตัวเลข n ที่แสดงจำนวนด้านของรูปหลายเหลี่ยมปกติ งานของเราคือการสร้าง โปรแกรมหามุมภายในและมุมภายนอกของรูปหลายเหลี่ยมปกติใน C++ คำอธิบายโจทย์ − ที่นี่ สำหรับจำนวนด้านที่กำหนด เราจะหาค่าของมุมภายในและมุมภายนอกแต่ละมุมของรูปหลายเหลี่ยมปกติที่มี n ด้าน มุมภายใน คือมุมระหว่างสองด้านที่

  11. โปรแกรมหาตัวอักษรย่อของชื่อใน C++

    ในโปรแกรมนี้ เราจะได้รับสตริงชื่อที่แสดงชื่อของบุคคล งานของเราคือการสร้างโปรแกรมเพื่อหาตัวอักษรย่อของชื่อใน C++ คำอธิบายโค้ด − ที่นี่เราต้องหาตัวอักษรย่อของชื่อบุคคลที่ให้มาในรูปแบบสตริง มาดูตัวอย่างเพื่อเข้าใจปัญหา อินพุต name = “ram kisan saraswat” เอาต์พุต R K S คำอธิบาย เราจะหาตัวอั

  12. เส้นทางสั้นที่สุดเก็บกุญแจครบทุกประตูใน C++

    คำอธิบายโจทย์ กริด: .=ว่าง, #=กำแพง, @=เริ่ม, a-f=กุญแจ, A-F=ประตู (ต้องมีกุญแจตรงตัวพิมพ์เล็ก) เดิน 4 ทิศทาง หา steps น้อยสุดเก็บกุญแจครบ ไม่ได้คืน -1 ตัวอย่าง grid = [@.a.#,###.#,b.A.B] → Output: 8 วิธีแก้ปัญหา BFS + Bitmask State: State: (x, y, keys_bitmask) keys_bitmask: bit i=1 ถ้ามีกุญแจ a

  13. หาตัวอักษรลำดับที่ K หลังถอดรหัสสตริงใน C++

    คำอธิบายโจทย์ สตริงเข้ารหัส: ตัวอักษรตามด้วยตัวเลข = repeat (เช่น ab2c3 = ababccc) หาตัวอักษรตำแหน่ง K (1-indexed) โดยไม่ต้อง decode ทั้ง string ตัวอย่าง s=ab2c3, k=5 → Output: c Decoded: a b a b c c c → ตำแหน่ง 5 คือ c วิธีแก้ปัญหา Recursive + Length Tracking: อ่านตัวอักษร: total_len++, ถ้า ==k

  14. โปรแกรมหาตัวอักษร ASCII มากที่สุดและน้อยที่สุดในสตริง C++

    คำอธิบายโจทย์ ให้สตริง หาตัวอักษรที่มีค่า ASCII มากที่สุดและน้อยที่สุด ตัวอย่าง str = TutorialsPoint → Max = u, Min = P เหตุผล: พิมพ์ใหญ่ (A-Z: 65-90) < พิมพ์เล็ก (a-z: 97-122) วิธีแก้ปัญหา วนลูปทุกตัวอักษร เปรียบเทียบค่า char โดยตรง (C++ เปรียบเทียบ ASCII อัตโนมัติ) โค้ดตัวอย่าง #include <io

  15. โปรแกรมหาตัวเลขมากที่สุดด้วย Ternary Operator ใน C++

    คำอธิบายโจทย์ หาค่าสูงสุดของ 2, 3, หรือ 4 ตัวเลข โดยใช้ Ternary Operator (?:) เท่านั้น ตัวอย่าง 2 numbers: 4, 54 → 54 3 numbers: 14, 40, 26 → 40 4 numbers: 10, 54, 26, 62 → 62 สูตร Ternary Operator 2 ตัว: b ? a : b 3 ตัว: c) ? b : c) 4 ตัว: d) ? c : d โค้ดตัวอย่าง 2 ตัวเลข #include <iostre

  16. Stamping The Sequence ใน C++

    คำอธิบายโจทย์ เป้าหมาย: สร้าง target string จาก ?*n โดยมี stamp string แต่ละครั้งทับ stamp ลงไปแทนที่ ? ได้สูงสุด 10*n ครั้ง หาลำดับ index ที่ทับ stamp (leftmost) ได้ target หรือ empty array ถ้าไม่ได้ ตัวอย่าง stamp=abcd, target=abcdbcd → Output: [3,0] ??????? → stamp at 3: ???abcd → stamp at 0: a

  17. หาค่าสูงสุดของ 4 ตัวเลขโดยไม่ใช้เงื่อนไขหรือบิตเวิร์ส C++

    คำอธิบายโจทย์ หาค่าสูงสุดของ 4 ตัวเลข a,b,c,d ห้ามใช้ if/else, ternary, bitwise operators ตัวอย่าง a=4, b=7, c=1, d=9 → Output: 9 วิธีแก้ปัญหา ใช้ boolean index ของอาร์เรย์ขนาด 2: bool MaxIndex = !(arr[0]-arr[1] + abs(arr[0]-arr[1])); 0 → !true = false (0) → arr[0] ถ้า arr[0]≤arr[1] → ค่า ≤0 → !

  18. โปรแกรมหาค่าสูงสุดในแมทริกซ์ C++

    คำอธิบายโจทย์ ให้แมทริกซ์ n×m หาค่าสูงสุดในแมทริกซ์ ตัวอย่าง mat[3][3] = {{4,1,6},{5,2,9},{7,3,0}} → Output: 9 วิธีแก้ปัญหา Nested loop ทุกแถวทุกคอลัมน์ เปรียบเทียบกับ maxVal โค้ดตัวอย่าง #include <iostream> using namespace std; #define n 3 #define m 3 int CalcMaxVal(int mat[n][m]) {

  19. โปรแกรมหาความต่างสูงสุดของดัชนีระหว่างตัวเลขที่ต่างกันใน C++

    คำอธิบายโจทย์ อาร์เรย์ arr[] หาความต่างดัชนีสูงสุด |i-j| ที่ arr[i] != arr[j] ตัวอย่าง arr = {4, 1, 3, 2, 1, 2, 4} → Output: 5 index 0 (ค่า 4) และ index 5 (ค่า 2) ต่างกัน → diff = 5 วิธีแก้ปัญหา เปรียบเทียบค่าแรก (arr[0]) กับค่าอื่นๆ หาดัชนีไกลสุดที่ต่างจาก arr[0]: สแกนซ้าย→ขวา หา index แรกที่ !

  20. กล้องวงจรปิดในต้นไม้แบบทวิภาค (Binary Tree Cameras) ใน C++

    คำอธิบายโจทย์ วางกล้องที่โหนดต้นไม้ กล้องแต่ละตัวตรวจสอบ: parent, ตัวเอง, children หาจำนวนกล้องน้อยที่สุดครอบคลุมทุกโหนด ตัวอย่าง Tree: [1,1,null,1,1] → Output: 1 กล้อง 1 ตัวที่รากครอบคลุมทั้งต้นไม้ วิธีแก้ปัญหา Greedy DFS (Post-order): covered set: โหนดที่ถูกครอบคลุม (รวม NULL) DFS ลงลึกไปก่อน

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:184/301  20-คอมพิวเตอร์/Page Goto:1 178 179 180 181 182 183 184 185 186 187 188 189 190