Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. Binary Indexed Tree: Range Update และ Range Queries ใน C++

    ในที่นี้ เรามีอาเรย์ขนาด n ที่มีค่าเริ่มต้นทั้งหมดเป็น 0 และมี query บางอย่างที่ต้องทำงานบนอาเรย์นี้ มี query 2 ประเภท: update(l, r, value) - บวก value ให้กับสมาชิกของอาเรย์ที่อยู่ระหว่างดัชนี l ถึง r ตัวอย่าง update(2, 4, 5) จะอัปเดตอาเรย์โดยวางค่า 5 ให้กับสมาชิกที่ดัชนี 2, 3, 4 getRangeSum(l, r)

  2. แปลง Binary Tree เป็น String พร้อมวงเล็บใน C++

    ในโจทย์นี้ เราได้รับ binary tree มาหนึ่งต้น งานของเราคือเขียนโปรแกรมแปลง binary tree ให้เป็น string ที่มีวงเล็บใน C++ ค่าของ binary tree เป็นจำนวนเต็ม และจะถูกส่งเข้าโปรแกรมในรูปแบบ preorder traversal String ที่ได้ควรประกอบด้วยตัวเลขและวงเล็บ () เท่านั้น และต้องเป็นรูปแบบที่เหมาะสมที่สุด คือ ต้องกำ

  3. โปรแกรม C สำหรับ Pipe ใน Linux

    ในบทความนี้ เราจะสร้าง โปรแกรม C สำหรับ pipe ใน Linux โปรแกรมนี้จะอ่านข้อความจากสตรีมอินพุต และพิมพ์ผลลัพธ์ออกหน้าจอ ก่อนอื่น เรามาทำความเข้าใจพื้นฐานของ pipe ใน Linux กันก่อน Pipe ใช้สำหรับถ่ายโอนข้อมูล สามารถนำไปใช้สื่อสารระหว่างกระบวนการ (process) คำสั่ง (command) หรือโปรแกรม เพื่อถ่ายโอนเอาต์พุ

  4. หมายเลข Strobogrammatic III ใน C++

    สมมติว่าเราต้องการนับจำนวนตัวเลข Strobogrammatic ทั้งหมดที่อยู่ในช่วง (low, high) ตัวเลข Strobogrammatic คือตัวเลขที่ดูเหมือนเดิมเมื่อหมุน 180 องศา เช่น ถ้าอินพุตคือ low = 50, high = 100 ผลลัพธ์จะเป็น 3 เพราะมี 3 ตัวคือ 69, 88, 96 ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนต่อไปนี้: ฟังก์ชัน findStrobogram

  5. ทาบ้าน II ใน C++

    สมมติว่าเรามีบ้าน n หลังเรียงกัน แต่ละหลังทาสีได้ 1 ใน k สี ค่าใช้จ่ายในการทาแต่ละหลังด้วยสีแต่ละสีต่างกัน เราต้องทาทุกหลังโดยที่ไม่มีบ้านติดกันสีเหมือนกัน ค่าใช้จ่ายแทนด้วยเมทริกซ์ n x k หาผลรวมค่าใช้จ่ายน้อยที่สุด เช่น ถ้าอินพุตคือเมทริกซ์ 2x3: {{1,5,3},{2,9,4}} ผลลัพธ์จะเป็น 5 ทาบ้าน 0 สี 0, บ้า

  6. พจนานุกรมสิ่งมีชีวิตต่างดาวใน C++

    สมมติว่ามีภาษาต่างดาวใหม่ที่ใช้ตัวอักษรละติน แต่ลำดับของตัวอักษรไม่ทราบ เรามีรายการคำจากพจนานุกรมที่เรียงลำดับตามกติกาของภาษานี้ เราต้องหาลำดับของตัวอักษรในภาษานี้ เช่น ถ้าอินพุตคือ [wrt,wrf,er,ett,rftt] ผลลัพธ์จะเป็น wertf ในการแก้ปัญหานี้ เราจะใช้ Topological Sort (Kahns Algorithm) ทำตามขั้นตอน:

  7. ค่าที่ใกล้ที่สุดในต้นไม้ค้นหาไบนารี II ใน C++

    สมมติว่าเรามีต้นไม้ค้นหาไบนารี (BST) และค่าเป้าหมาย (target) เราต้องหา k ค่าใน BST ที่ใกล้ที่สุดกับ target target เป็นทศนิยม k เสมอถูกต้องและ k ≤ จำนวนโหนดทั้งหมด เช่น ถ้าอินพุตเป็นต้นไม้ตามรูป target = 3.714286, k = 2 ผลลัพธ์จะเป็น [4,3] ในการแก้ปัญหานี้ เราจะใช้ 2 Stack เก็บโหนดที่น้อยกว่าและมากก

  8. Word Pattern II ใน C++

    สมมติว่าเรามีรูปแบบ (pattern) และสตริง str เราต้องตรวจสอบว่า str ปฏิบัติตามรูปแบบเดียวกันหรือไม่ โดย pattern follow หมายถึงการจับคู่แบบเต็ม (full match) ที่มี bijection ระหว่างตัวอักษรใน pattern กับสตริงย่อยที่ไม่ว่างใน str เช่น ถ้าอินพุตคือ pattern = abaa, str = orangegreenorangeorange ผลลัพธ์จะเป

  9. จุดพบปะที่ดีที่สุดใน C++

    สมมติว่ามีกลุ่มคน 2 คนขึ้นไป ต้องการพบกันและลดระยะทางเดินทางรวมให้น้อยที่สุด เรามีกริด 2 มิติค่า 0 หรือ 1 โดย 1 แทนบ้านของแต่ละคน ระยะทางคำนวณด้วย Manhattan Distance: distance(p1,p2) = |p2.x-p1.x| + |p2.y-p1.y| เช่น ถ้าอินพุตเป็นกริด 3x5 ตามตาราง (มี 1 ที่ (0,0), (0,4), (2,2)) ผลลัพธ์จะเป็น 6 เพราะ

  10. จัดทำซีเรียลและถอดซีเรียลต้นไม้ไบนารีใน C++

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

  11. สี่เหลี่ยมเล็กที่สุดที่ล้อมพิกเซลสีดำใน C++

    สมมติว่าเรามีภาพที่แทนด้วยเมทริกซ์ไบนารี 0 คือพิกเซลสีขาว 1 คือพิกเซลสีดำ พิกเซลสีดำเชื่อมต่อกันเป็นกลุ่มเดียว (เชื่อมต่อแนวนอนและแนวตั้ง) หากเรามีตำแหน่ง (x,y) ของพิกเซลสีดำหนึ่งจุด เราต้องหาพื้นที่ของสี่เหลี่ยมผืนผ้า (axis-aligned) ที่เล็กที่สุดซึ่งล้อมพิกเซลสีดำทั้งหมด เช่น ถ้าอินพุตเป็นเมทริกซ์

  12. Range Sum Query 2D - Mutable ใน C++

    สมมติว่าเรามีเมทริกซ์ 2 มิติชื่อ matrix เราต้องคำนวณผลรวมขององค์ประกอบภายในสี่เหลี่ยมผืนผ้าที่กำหนดโดยมุมซ้ายบนและมุมขวาล่าง เช่น ถ้าอินพุตเป็นเมทริกซ์ 5x5 ตามตาราง (มีการไฮไลท์สีเขียวสำหรับพื้นที่ query) จะมีเมธอดหาผลรวมและอัพเดทค่า หากเราเรียก: sumRegion(2, 1, 4, 3)update(3, 2, 2)sumRegion(2, 1,

  13. ระยะทางสั้นที่สุดจากอาคารทั้งหมดใน C++

    สมมติว่าเราต้องการสร้างบ้านบนที่ว่างซึ่งสามารถไปถึงอาคารทั้งหมดด้วยระยะทางรวมน้อยที่สุด เราสามารถเคลื่อนที่ได้ 4 ทิศทาง: บน ล่าง ซ้าย ขวา เรามีกริด 2 มิติค่า 0, 1, 2 โดย: 0 แทนที่ว่าง ผ่านได้ 1 แทนอาคาร ผ่านไม่ได้ 2 แทนอุปสรรค ผ่านไม่ได้ เช่น ถ้าอินพุตเป็นกริด: 10201 00000 00100 ผลลัพธ์จะเป็น

  14. สตริงย่อยที่ยาวที่สุดซึ่งมีตัวอักษรต่างกันสูงสุด K ตัวใน C++

    สมมติว่าเรามีสตริง เราต้องคำนวณความยาวของสตริงย่อยที่ยาวที่สุด T ที่มีตัวอักษรที่แตกต่างกันไม่เกิน k ตัว เช่น ถ้าอินพุตคือ s = eceba, k = 2 ผลลัพธ์จะเป็น 3 เพราะ T คือ ece ซึ่งมีความยาว 3 ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนต่อไปนี้: ans := 0 สร้าง map m นับตัวอักษรใน window n := ความยาว s, x := 0 (

  15. จัดเรียงสตริงใหม่ให้ห่างกัน k ตัวใน C++

    สมมติว่าเรามีสตริงไม่ว่าง s และจำนวนเต็ม k เราต้องจัดเรียงสตริงใหม่ให้ตัวอักษรเดียวกันห่างกันอย่างน้อย k ตัวอักษร สตริงที่ให้มาประกอบด้วยตัวอักษรพิมพ์เล็ก หากจัดเรียงไม่ได้ ให้คืนสตริงว่าง เช่น ถ้าอินพุตคือ s = aabbcc, k = 3 ผลลัพธ์จะเป็น abcabc เพราะตัวอักษรซ้ำห่างกันอย่างน้อย 3 ตัว ในการแก้ปัญหาน

  16. สี่เหลี่ยมผืนผ้าแบบสมบูรณ์ใน C++

    สมมติว่าเรามีสี่เหลี่ยมผืนผ้าที่จัดเรียงตามแกน N ชิ้น เราต้องตรวจสอบว่าทั้งหมดรวมกันเป็นการครอบคลุมพื้นที่สี่เหลี่ยมผืนผ้าอย่างสมบูรณ์หรือไม่ แต่ละสี่เหลี่ยมถูกแทนด้วยจุดมุมซ้ายล่างและมุมขวาบน หน่วยสี่เหลี่ยมจัตุรัสแทนด้วย [1,1,2,2] (มุมซ้ายล่าง (1,1) มุมขวาบน (2,2)) เช่น ถ้าอินพุตคือ rectangles =

  17. ตัวย่อคำที่สั้นที่สุดและไม่ซ้ำใน C++

    สมมติว่าเรามีสตริง เช่น word ซึ่งมีตัวย่อดังนี้: [word,1ord,w1rd,wo1d,wor1,2rd,w2d,wo2,1o1d,1or1,w1r1,1o2,2r1,3d,w3,4] เรายังมีสตริงเป้าหมาย (target) และชุดสตริงในพจนานุกรม (dictionary) เราต้องหาตัวย่อของสตริงเป้าหมายที่มีความยาวน้อยที่สุด ซึ่งไม่ขัดแย้งกับตัวย่อของสตริงในพจนานุกรม ตัวเลขหรือตัวอัก

  18. Word Squares ใน C++

    สมมติว่าเรามีชุดคำ (ทุกคำไม่ซ้ำกัน) เราต้องหา Word Squares ทั้งหมดที่สร้างได้จากชุดคำนั้น ลำดับของคำจะสร้าง Word Square ที่ถูกต้องได้ หากแถวที่ k และคอลัมน์ที่ k อ่านได้สตริงเดียวกัน โดยที่ 0 ≤ k < max(จำนวนแถว, จำนวนคอลัมน์) ตัวอย่างเช่น ลำดับคำ [ball,area,lead,lady] จะสร้าง Word Square ได้ เพราะแ

  19. จัดทำซีเรียลและถอดซีเรียลต้นไม้ N-ary ใน C++

    สมมติว่าเรามีต้นไม้ N-ary และเราต้องจัดทำซีเรียล (serialize) และถอดซีเรียล (deserialize) ต้นไม้นั้น ตามที่รู้จักว่าการซีเรียลคือการแปลงโครงสร้างข้อมูลหรือวัตถุเป็นลำดับบิต เพื่อเก็บในไฟล์หรือบัฟเฟอร์หน่วยความจำ และสามารถสร้างคืนได้ภายหลังในสภาพแวดล้อมเดียวกันหรือต่างกัน ที่นี่เราต้องออกแบบอัลกอริทึ

  20. เข้ารหัสต้นไม้ N-ary เป็นต้นไม้ไบนารีใน C++

    สมมติว่าเรามีต้นไม้ N-ary เราต้องเข้ารหัสต้นไม้นั้นให้กลายเป็นต้นไม้ไบนารี และยังต้องทำ deserializer เพื่อคืนค่าต้นไม้ N-ary จากต้นไม้ไบนารี เช่น ถ้าอินพุตเป็นรูปภาพดังนี้: ผลลัพธ์จะเป็น: ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนต่อไปนี้: กำหนดฟังก์ชัน encode() รับ root: ถ้า root ว่าง คืนค่า null; สร้า

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:193/301  20-คอมพิวเตอร์/Page Goto:1 187 188 189 190 191 192 193 194 195 196 197 198 199