Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. Inorder Successor ใน BST II (มี parent pointer) ใน C++

    เราได้รับโหนดใน Binary Search Tree (BST) ที่มี pointer 指向 parent เป้าหมายคือหา inorder successor ของโหนดนั้น (โหนดที่มีค่าน้อยที่สุดที่มากกว่าโหนดปัจจุบัน) ตัวอย่าง BST: 5 / \ 3 6 / \ 2 4 / 1 โหนด 2 → Inorder successor คือ 3 แนวทางการแก้ปัญหา กรณีที่ 1: โหนดมี right child

  2. Lonely Pixel I ใน C++

    เราได้รับภาพที่ประกอบด้วยพิกเซลสีดำ (B) และสีขาว (W) ในรูปแบบ 2D char array เป้าหมายคือหาจำนวน Lonely Pixel สีดำ Lonely Pixel คือ B ที่อยู่ในแถวและคอลัมน์ที่ไม่มี B อื่นอยู่ (คือ B เพียงตัวเดียวในแถวและคอลัมน์นั้น) ตัวอย่าง อินพุต: W W B W B W B W W เอาต์พุต: 3 (ทั้ง 3 B ล้วนเป็น lonely pixel) แน

  3. โปรแกรมนับจำนวนรายการติดต่อกันที่ผลรวมเท่ากับ n ใน C++

    เราได้รับตัวเลข n เป้าหมายคือหาจำนวนลำดับ (lists) ของจำนวนเต็มบวกที่ติดต่อกัน (consecutive) ที่ผลรวมเท่ากับ n ตัวอย่าง: n = 15 → 4 ลำดับ: [1,2,3,4,5], [4,5,6], [7,8], [15] แนวทางการแก้ปัญหา (Two Pointers / Sliding Window) ใช้ 2 จุด begin และ end ขยาย end สะสมผลรวม เมื่อผลรวม ≥ n ให้เลื่อน begin ลด

  4. โปรแกรมหา Median ของอาร์เรย์ที่เรียงลำดับแล้ว 2 อาร์เรย์ใน C++

    เราได้รับอาร์เรย์ที่เรียงลำดับแล้ว 2 อาร์เรย์ เป้าหมายคือหา median ของข้อมูลรวมทั้งสองอาร์เรย์ ตัวอย่าง: [1,5,8] และ [2,3,6,9] → Median = 5 แนวทางการแก้ปัญหา (Binary Search O(log(min(m,n)))) ใช้ binary search บนอาร์เรย์ที่สั้นกว่า หา partition ที่ทำให้: maxLeftX ≤ minRightY maxLeftY ≤ minRightX

  5. โปรแกรมหา Ugly Number ลำดับที่ n ใน C++

    Ugly numbers คือจำนวนที่ตัวประกอบเฉพาะ (prime factors) มีเพียง 2, 3, 5 เท่านั้น ลำดับ Ugly numbers: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ... ตัวอย่าง: n = 10 → Ugly number ลำดับที่ 10 คือ 12 แนวทางการแก้ปัญหา (Dynamic Programming O(n)) ใช้ 3 pointer (twoIdx, threeIdx, fiveIdx) ติดตามตำแหน่งที่จะคูณ

  6. นับคู่ (A ≤ N, B ≤ N) ที่ gcd(A, B) = B ใน C++

    เราได้รับจำนวนเต็ม N เป้าหมายคือนับคู่ (A, B) ที่ 1 ≤ A ≤ N, 1 ≤ B ≤ N และ gcd(A, B) = B ตัวอย่าง อินพุต: N = 5 เอาต์พุต: 10 คำอธิบาย: คู่ที่เป็นไปได้: (1,1), (2,1), (3,1), (4,1), (5,1), (2,2), (3,3), (4,2), (4,4), (5,5) อินพุต: N = 50 เอาต์พุต: 207 แนวทางการแก้ปัญหา วิธีแบบง่าย (Naive O(N²)) วน

  7. นับจำนวน N หลักที่มีเลข 0 จำนวนคู่หลักใน C++

    เราได้รับตัวเลข N เป้าหมายคือหาจำนวนตัวเลข N หลัก (รวม leading zeros) ที่มีเลข 0 จำนวนคู่หลัก ตัวอย่าง อินพุต: N = 4 เอาต์พุต: 7047 อินพุต: N = 5 เอาต์พุต: 66383 แนวทางการแก้ปัญหา (คณิตศาสตร์) ตัวเลข N หลักทั้งหมด: T = 10N ตัวเลขที่มี 0 จำนวนคี่: O = (10N - 8N) / 2 ตัวเลขที่มี 0 จำนวนคู่: E = T

  8. นับจำนวน N หลักที่มีเลข 0 จำนวนคี่หลักใน C++

    เราได้รับตัวเลข N เป้าหมายคือหาจำนวนตัวเลข N หลัก (รวม leading zeros) ที่มีเลข 0 จำนวนคี่หลัก ตัวอย่าง อินพุต: N = 3 เอาต์พุต: 244 คำอธิบาย: ตัวเลข 3 หลัก 000 ถึง 999 ที่มี 0 จำนวนคี่หลัก อินพุต: N = 5 เอาต์พุต: 33616 แนวทางการแก้ปัญหา (คณิตศาสตร์) ตัวเลข N หลักทั้งหมด (รวม leading zeros): T = 1

  9. นับจำนวนสตริงที่สร้างได้จากอีกสตริงหนึ่งใน C++

    เราได้รับสตริง 2 ตัว str_1 และ str_2 เป้าหมายคือหาว่าสามารถสร้าง str_2 ได้กี่ครั้งจากตัวอักษรใน str_1 (แต่ละตัวอักษรใน str_1 ใช้ได้เพียงครั้งเดียวต่อหนึ่ง str_2) ตัวอย่าง อินพุต: str_1 = abcaaaabca, str_2 = bca เอาต์พุต: 2 คำอธิบาย: str_1 มี a:5, b:2, c:2 str_2 ต้องการ a:1, b:1, c:1 สร้างได้ min(5/

  10. นับ Substring ที่มีจำนวน 0, 1, 2 เท่ากันใน C++

    เราได้รับสตริง str ที่มีแต่ 0, 1, 2 เป้าหมายคือหา substring ที่มีจำนวน 0, 1, 2 เท่ากันทุกตัว ตัวอย่าง อินพุต: str = 112200120 เอาต์พุต: 5 คำอธิบาย: 112200, 122001, 012, 120, 201 อินพุต: str = 12012 เอาต์พุต: 3 คำอธิบาย: 120, 201, 012 แนวทางการแก้ปัญหา (Prefix Difference + Hash Map) กำหนด count0,

  11. นับ Substring ที่ตัวแรกและตัวสุดท้ายเหมือนกันใน C++

    เราได้รับสตริง str เป้าหมายคือนับ substring ที่ตัวอักษรแรกและตัวสุดท้ายเหมือนกัน ตัวอย่าง อินพุต: str = abaefgf เอาต์พุต: 9 คำอธิบาย: a, b, a, e, f, g, f, aba, fgf อินพุต: str = abcdef เอาต์พุต: 6 คำอธิบาย: a, b, c, d, e, f (แต่ละตัวนับเป็น substring ความยาว 1) แนวทางการแก้ปัญหา วิธีแบบง่าย (Nai

  12. นับ Substring ที่ตัวอักษรแต่ละตัวปรากฏไม่เกิน k ครั้งใน C++

    เราได้รับสตริง str และตัวเลข k เป้าหมายคือนับ substring ที่ตัวอักษรแต่ละตัวปรากฏไม่เกิน k ครั้ง ตัวอย่าง อินพุต: str = abaefgf, k = 1 (สมมติ) เอาต์พุต: 9 คำอธิบาย: a, b, a, e, f, g, f, aba, fgf อินพุต: str = abcdef, k = 1 เอาต์พุต: 6 คำอธิบาย: a, b, c, d, e, f แนวทางการแก้ปัญหา (Naive O(n²)) สร้า

  13. นับ Substring ที่เริ่มต้นด้วย X และลงท้ายด้วย Y ใน C++

    เราได้รับสตริง str และตัวอักษร X, Y เป้าหมายคือนับ substring ที่ขึ้นต้นด้วย X และลงท้ายด้วย Y ตัวอย่าง อินพุต: str = abcccdef, X = a, Y = c เอาต์พุต: 3 คำอธิบาย: abc, abcc, abccc อินพุต: str = tempest, X = t, Y = t เอาต์พุต: 3 คำอธิบาย: t, tempest, t (นับทุกคู่ index ที่เป็น t) แนวทางการแก้ปัญหา

  14. นับ Subset ที่มีเลขคู่ที่ต่างกันทั้งหมดใน C++

    เราได้รับอาร์เรย์จำนวนเต็มบวก เป้าหมายคือหา subset ที่มีเลขคู่ที่ distinct (ไม่ซ้ำ) ทั้งหมด Subset ที่มีสมาชิกเหมือนกันนับเป็น 1 ตัวอย่าง อินพุต: arr[] = {1, 3, 5, 7, 8, 3, 2} เอาต์พุต: 3 คำอธิบาย: [2], [8], [2,8] อินพุต: arr[] = {2, 4, 6} เอาต์พุต: 7 คำอธิบาย: [2], [4], [6], [2,4], [2,6], [4,6],

  15. นับ Subsequence ความยาว 3 ในสตริงที่กำหนดใน C++

    เราได้รับสตริง str และ substring sub_str ความยาว 3 เป้าหมายคือหาจำนวน subsequence ที่ตรงกับ sub_str ใน str เช่น act ปรากฏ 3 ครั้งใน cataract (cataract, cataract, cataract) ตัวอย่าง อินพุต: str = settlement, sub_str = set เอาต์พุต: 5 คำอธิบาย: 5 subsequences ที่สะกดได้ set อินพุต: str = knowledge,

  16. นับ Subarray ที่มีจำนวนเลขคู่และเลขคี่เท่ากันใน C++

    เราได้รับอาร์เรย์จำนวนเต็มบวก เป้าหมายคือหา subarray ที่มีจำนวนเลขคู่และเลขคี่เท่ากัน ตัวอย่าง อินพุต: arr[] = {1, 3, 5, 7, 8, 3, 2} เอาต์พุต: 4 คำอธิบาย: {7,8}, {8,3}, {3,2}, {7,8,3,2} อินพุต: arr[] = {2, 4, 6} เอาต์พุต: 0 คำอธิบาย: ทุกตัวเป็นเลขคู่ แนวทางการแก้ปัญหา (Efficient O(n)) ใช้ตัวแปร t

  17. นับ Subarray ที่มีผลรวมเป็นจำนวนเฉพาะใน C++

    เราได้รับอาร์เรย์จำนวนเต็มบวก เป้าหมายคือหา subarray ที่ผลรวมเป็นจำนวนเฉพาะ (Prime) ตัวอย่าง อินพุต: arr[] = {1, 3, 5, 3, 2} เอาต์พุต: 3 คำอธิบาย: {3,2} sum=5, {3,5,3} sum=11, {3,5,3,2} sum=13 อินพุต: arr[] = {2, 4, 6} เอาต์พุต: 0 คำอธิบาย: ทุก subarray มีผลรวมไม่ใช่จำนวนเฉพาะ แนวทางการแก้ปัญหา

  18. นับจำนวนหลักทั้งหมดจาก 1 ถึง N ใน C++

    เราได้รับตัวเลข N เป้าหมายคือนับจำนวนหลักทั้งหมดของตัวเลขตั้งแต่ 1 ถึง N ตัวอย่าง อินพุต: N = 11 เอาต์พุต: 13 คำอธิบาย: 1-9: 9 หลัก, 10-11: 4 หลัก, รวม 13 หลัก อินพุต: N = 999 เอาต์พุต: 2889 คำอธิบาย: 1-9: 9, 10-99: 180, 100-999: 2700, รวม 2889 แนวทางการแก้ปัญหา วิธีแบบง่าย (Recursive) แปลงแต่ละ

  19. นับจำนวนคำที่มีผลรวมค่า ASCII น้อยกว่าและมากกว่า k ใน C++

    เราได้รับสตริง str (ประโยค) และตัวเลข k เป้าหมายคือหาจำนวนคำที่มีผลรวมค่า ASCII น้อยกว่า k และมากกว่า k ตัวอย่าง อินพุต: str = This is ASCII, k = 300 เอาต์พุต: น้อยกว่า 300: 1 คำ, มากกว่า 300: 2 คำ คำอธิบาย: คำ is มี ASCII น้อยกว่า 300 อีกสองคำมากกว่า อินพุต: str = set set set, k = 300 เอาต์พุต: น

  20. นับ Subarray ที่มีจำนวน A และ B เท่ากันใน C++

    เราได้รับอาร์เรย์ arr[] และตัวเลข A, B เป้าหมายคือนับ subarray ที่จำนวนครั้งที่ A และ B ปรากฏเท่ากัน ตัวอย่าง อินพุต: arr[] = {2, 2, 1, 1, 1, 5}, A=1, B=5 เอาต์พุต: 4 คำอธิบาย: [2], [2], [2,2] (ไม่มี 1 และ 5), [1,5] (มี 1 และ 5 ครั้งละ 1) อินพุต: arr[] = {5, 3, 7, 5, 3}, A=1, B=2 เอาต์พุต: 15 คำอธ

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:230/301  20-คอมพิวเตอร์/Page Goto:1 224 225 226 227 228 229 230 231 232 233 234 235 236