Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. Minimum Cost To Make Two Strings Identical ใน C++

    สมมติมี Strings A, B และ Cost Values: CostA, CostB ต้องการหา Minimum Cost ทำให้ A และ B เหมือนกัน โดยลบ Characters Cost ลบจาก A คือ CostA จาก B คือ CostB ตัวอย่าง A=wxyz, B=wyzx, CostA=10, CostB=20 Output=30 ลบ x จากทั้งคู่ Cost=10+20=30 นี่เป็น Variation ของ Longest Common Subsequence (LCS) หา LCS

  2. Minimum Index Sum สำหรับ Common Elements ของ Two Lists ใน C++

    สมมติ 2 คนเลือกเมือง คนละ List ต้องช่วยหา Common Choices ค้นหาเมืองที่ทั้งคู่เลือก Operation นี้คล้าย Set Intersection นำ 2 Lists มาเป็น Set แล้วหา Intersection ตัวอย่างโค้ด C++ #include <iostream> #include <vector> #include <algorithm> using namespace std; vector<string> co

  3. หาจุดมุมของ Rectangle จาก Midpoints ใน C++

    สมมติมี Rectangle ABCD แต่รู้แค่ Midpoints P และ Q และความยาวด้าน L ต้องการหา Coordinates ของ A, B, C, D จาก P, Q และ L ตัวอย่าง P=(1,0), Q=(1,2), L=2 ได้ A,B,C,D = (0,0), (0,2), (2,2), (2,0) มี 3 กรณี: Rectangle แนวนอน AD, BC ขนานแกน X Rectangle แนวตั้ง AD, BC ขนานแกน Y Rectangle 傾斜 กับแกน กรณีท

  4. นับ Single Valued Subtrees ใน Binary Tree ใน C++

    สมมติมี Binary Tree ต้องการนับ Single Valued Subtrees Single Valued Subtree คือ Subtree ที่ทุก Node มีค่าเหมือนกัน ตัวอย่าง Tree: มี Single Valued Subtrees 4 ต้น: แก้ด้วย Bottom-up Manner: สำหรับ Subtree ที่ Visit คืนค่า true ถ้า Subtree Rooted ที่ Node นั้นเป็น Single Valued และเพิ่ม Counter Refe

  5. หา Pair ที่มี GCD สูงสุดใน Array ใน C++

    สมมติมี Array ของ Positive Integers ต้องการหา Pair ที่มี GCD สูงสุด ตัวอย่าง A = {1, 2, 3, 4, 5} Output = 2 Pair (2, 4) มี GCD = 2 สูงสุด วิธีแก้: สร้าง Count Array เก็บจำนวน Divisors ของแต่ละ Element การนับ Divisors ใช้เวลา O(sqrt(arr[i])) หลัง Traversal ครบ ให้ตรวจสอบ Count Array จากท้ายมาหน้า ถ้า

  6. หา GCD ของ N Fibonacci Numbers ด้วย Indices ที่กำหนดใน C++

    ในที่นี้เราต้องการหา GCD ของ n Fibonacci Terms ด้วย Indices ที่กำหนด หา Maximum Index ก่อน แล้ว Generate Fibonacci Terms: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34... Index เริ่มจาก 0 ถ้าต้องการ GCD ของ Indices {2, 3, 4, 5} Terms คือ {1, 2, 3, 4} GCD = 1 ใช้ Property สนุก: GCD(Fibo(i), Fibo(j)) = Fibo(GCD(i,

  7. หา Rotation Count ใน Rotated Sorted Array ใน C++

    พิจารณา Array ที่เป็น Rotated Sorted Array ต้องการหาจำนวน Rotations ที่ต้องหมุนเพื่อให้ Array เรียงลำดับ (Rotation ขวาไปซ้าย) ตัวอย่าง Array: {15, 17, 1, 2, 6, 11} ต้อง Rotate 2 ครั้ง จะได้ {1, 2, 6, 11, 15, 17} Output = 2 ตรรกะง่าย: จำนวน Rotation เท่ากับ Index ของ Minimum Element หา Minimum Elemen

  8. หา Non-Transitive Coprime Triplet ใน Range ใน C++

    สมมติมี Lower และ Upper Bound ต้องการหา Non-Transitive Triplet (x, y, z) ที่ (x, y) เป็น Coprime (GCD=1), (y, z) เป็น Coprime แต่ (x, z) ไม่ใช่ Coprime ตัวอย่าง Lower=2, Upper=10 Elements {2,3,4,5,6,7,8,9,10} Triplet ที่เป็นไปได้คือ (4, 7, 8) เพราะ (4,7) และ (7,8) เป็น Coprime แต่ (4,8) ไม่ใช่ ใช้ N

  9. หา LCM ของ Array Numbers โดยไม่ใช้ GCD ใน C++

    เรามี Array A ต้องการหา LCM ของทุก Elements โดยไม่ใช้ GCD Operation ถ้า Array คือ {4, 6, 12, 24, 30} LCM จะเป็น 120 LCM ของ 2 จำนวนคำนวณง่าย อัลกอริทึม: getLCM(a, b) begin if a > b, then m := a, otherwise m := b while true do if m divisible by both a and b, then return m m

  10. หา Floor และ Ceil จาก BST ใน C++

    ในบทความนี้เราจะมาดูวิธีหา Floor และ Ceiling Value จาก BST ตัวอย่างระบบจัดการ Memory ที่ Free Nodes จัดเรียงใน BST หา Best Fit สำหรับ Request ถ้าเดินลง Tree ด้วยค่าที่มากกว่า Key น้อยที่สุด จะมี 3 กรณี: Root คือ Key แล้ว Root Value คือ Ceiling ถ้า Root Data < Key Ceiling ไม่อยู่ Left Subtree ไป

  11. ตรวจสอบ Array Element ที่ Coprime กับ Element อื่นๆ ทั้งหมดใน C++

    สมมติมี Array A[] ของ Positive Integers โดย 2 ≤ A[i] ≤ 10⁶ ต้องการตรวจสอบว่ามี Element อย่างน้อย 1 ตัวที่เป็น Coprime กับ Element อื่นๆ ทั้งหมดหรือไม่ ตัวอย่าง Array {2, 8, 4, 10, 6, 7} ตัวเลข 7 เป็น Coprime กับตัวอื่นๆ ทั้งหมด วิธีที่มีประสิทธิภาพ: หา Prime Factors ของทุก Integer ใน Array ถ้า Eleme

  12. ตรวจสอบ Balanced Parentheses ใน Expression ใน C++

    สมมติมี Expression ที่มี Parentheses ต้องตรวจสอบว่า Balanced หรือไม่ ลำดับคือ (), {}, [] ตัวอย่าง ()[(){()}] ถูกต้อง แต่ {[}] ผิด ใช้ Stack: Traverse Expression จนหมด ถ้าเป็น Opening Bracket (, {, [ ให้ Push เข้า Stack ถ้าเป็น Closing Bracket ), }, ] ให้ Pop จาก Stack ตรวจสอบว่าตรงกับ Opening Brack

  13. ตรวจสอบ Children Sum Property ใน Binary Tree ใน C++

    สมมติมี Binary Tree Tree ถูกต้องเมื่อตรงตาม Property: แต่ละ Node ต้องมีค่าเท่ากับผลรวมของ Left และ Right Children ถ้าไม่มีลูกด้านไหน ให้ถือเป็น 0 ตัวอย่าง Tree ที่ตรงตาม Property: ไม่มีทริคพิเศษ ต้อง Traverse แบบ Recursive ถ้า Node และ Children ทั้งคู่ตรง Property คืนค่า true มิฉะนั้น false ตัวอย่า

  14. ตรวจสอบ Identical BSTs โดยไม่สร้าง Tree ใน C++

    เรามี 2 Arrays แทน Elements ของ BST ถ้านำ Elements จาก Array ทั้งสองจากซ้ายไปขวาสร้าง BST จะได้ BST เดียวกัน ต้องตรวจสอบว่าเหมือนกันหรือไม่ โดยมีเงื่อนไขห้ามสร้าง BST จริง ตัวอย่าง Arrays {2, 4, 1, 3} และ {2, 1, 4, 3} สร้าง BST เหมือนกัน แนวคิด: Elements ของ Left Subtree น้อยกว่า Root Right Subtree

  15. ตรวจสอบ Majority Element ใน Sorted Array ใน C++

    สมมติมี Array ที่เรียงแล้ว ต้องการตรวจสอบว่า Number x เป็น Majority Element หรือไม่ Majority Element คือ Element ที่ปรากฏมากกว่า n/2 ครั้ง ตัวอย่าง Array {1, 2, 3, 3, 3, 3, 6}, x = 3 คำตอบ true เพราะ 3 ปรากฏ 4 ครั้ง n=7 ดังนั้น 4 > 7/2 นับ Frequency ของ x ใน Array ถ้ามากกว่า n/2 คืนค่า true มิฉะน

  16. ตรวจสอบ Palindrome หลัง Character Replacement Query ใน C++

    พิจารณา String และ Queries ใน Set Q แต่ละ Query มี Pair (i, j) และ Character c ต้อง Replace Characters ที่ Index i และ j ด้วย c แล้วบอกว่า String เป็น Palindrome หรือไม่ ตัวอย่าง String AXCDCMP Query (1, 5, B) ได้ ABCDCBP Query (0, 6, A) ได้ ABCDCBA เป็น Palindrome ตัวอย่างโค้ด C++ #include <iost

  17. ตรวจสอบ Path ใน 2D Matrix ใน C++

    พิจารณา 2D Array ต้องการหาว่ามี Path จากมุมซ้ายบนไปมุมขวาล่างหรือไม่ Matrix ประกอบด้วย 0 และ 1 โดย 0 = พื้นที่ว่าง 1 = กีดขวาง จุดเริ่มต้นมุมซ้ายบนจะเป็น 1 เสมอ ตัวอย่าง Matrix: 00010 10011 00010 10000 00100 มี Path อยู่ (สีเขียว) โปรแกรมคืนค่า true ถ้ามี Path มิฉะนั้น false วิธีแก้: เปลี่ยน Acc

  18. ตรวจสอบว่า Matrix เป็น Magic Square หรือไม่ใน C++

    ในบทความนี้เราจะตรวจสอบว่า Matrix เป็น Magic Square หรือไม่ Magic Square คือ Square Matrix ที่ผลรวมของแต่ละ Row, แต่ละ Column และแต่ละ Diagonal เหมือนกันทั้งหมด ตัวอย่าง Matrix: 618 753 294 นี่คือ Magic Square เพราะผลรวม Row, Column, Diagonal ทุกอย่างคือ 15 วิธีตรวจสอบ: หาผลรวม Major Diagonal แล

  19. ตรวจสอบ Array แทน BST ความสูง n ระดับได้หรือไม่ใน C++

    เรามี Array A ต้องการตรวจสอบว่าแทน BST ความสูง n ระดับได้หรือไม่ เนื่องจากระดับคือ n เราสามารถสร้าง Tree ได้ดังนี้: สมมติค่าคือ k ค่ามากกว่า k ไปขวา น้อยกว่า k ไปซ้าย ตัวอย่าง 2 Lists: {50, 20, 9, 25, 10} และ {50, 30, 20, 25, 10} List แรกไม่ถูกต้อง List ที่สองถูกต้อง วิธีตรวจสอบแบบ Array-based: ตั

  20. ตรวจสอบว่า Number อยู่ใน Base ที่กำหนดหรือไม่ใน C++

    สมมติมี Number String ต้องการตรวจสอบว่าเป็น Base B หรือไม่ ถ้า String 101110, b = 2 คืนค่า true ถ้า A8F, base 16 ก็ true วิธีง่าย: ถ้า Character ทุกตัวอยู่ในช่วง Symbol ของ Base นั้น คืนค่า true มิฉะนั้น false ตัวอย่างโค้ด C++ #include <iostream> using namespace std; bool inGivenBase(string s

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:82/301  20-คอมพิวเตอร์/Page Goto:1 76 77 78 79 80 81 82 83 84 85 86 87 88