Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. ลบโหนดที่มีค่ามากกว่า x ใน Linked List ด้วย C++

    ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีการลบโหนดที่มีค่ามากกว่า x จาก singly linked list ขั้นตอนในการแก้ปัญหา: เขียน struct ที่มี data และ next pointer เขียนฟังก์ชัน insert node เข้า singly linked list เริ่มต้น singly linked list ด้วยข้อมูลตัวอย่าง วนลูปผ่าน singly linked list ตรวจสอบว่าโหนดปัจจุบันมีค่าม

  2. ลบโหนดสลับกันใน Linked List ด้วย C++

    ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีการลบโหนดสลับกัน (alternate nodes) จาก singly linked list ขั้นตอนในการแก้ปัญหา: เขียน struct ที่มี data และ next pointer เขียนฟังก์ชัน insert node เข้า singly linked list เริ่มต้น singly linked list ด้วยข้อมูลตัวอย่าง วนลูปผ่าน singly linked list ลบโหนดสลับกันโดยเก็บ

  3. ตรวจสอบว่าอาร์เรย์เรียงลำดับได้ด้วย Stack หรือไม่ใน C++

    สมมติว่าเรามีอาร์เรย์ nums ที่มีสมาชิกไม่ซ้ำกันจาก 1 ถึง n เราต้องตรวจสอบว่ามันเป็น stack-sortable หรือไม่ อาร์เรย์เรียกว่า stack-sortable เมื่อสามารถจัดเก็บไว้ในอีกอาร์เรย์หนึ่งโดยใช้ stack ชั่วคราวได้ เราสามารถใช้การดำเนินการเหล่านี้กับอาร์เรย์ได้: ลบสมาชิกแรกของอาร์เรย์และ push เข้า stack ลบสมาช

  4. ตรวจสอบช่วงเวลาที่ทับซ้อนกันในชุดช่วงเวลาด้วย C++

    สมมติว่าเราได้รับชุดของช่วงเวลา (intervals) ที่ประกอบด้วยค่า (time1, time2) โดย time1 แทนเวลาเริ่มต้น และ time2 แทนเวลาสิ้นสุดของเหตุการณ์หนึ่ง ภารกิจคือตรวจสอบว่าช่วงเวลาใดช่วงเวลาหนึ่งทับซ้อน (overlap) กับช่วงเวลาอื่นในชุดนี้หรือไม่ ถ้ามีการทับซ้อน คืนค่า True มิฉะนั้นคืนค่า False เช่น ถ้าอินพุตคื

  5. นับจำนวนครั้งที่ตัวอักษรปรากฏในสตริงซ้ำด้วย C++

    ได้รับสตริง str, ตัวอักษร ch และจำนวนเต็มบวก N สตริง str จะถูกทำซ้ำไปเรื่อยๆ เป้าหมายคือหาจำนวนครั้งที่ตัวอักษร ch ปรากฏใน N ตัวอักษรแรกของสตริงที่ซ้ำกัน ถ้า str = abac, ch = b, N = 10 ใน 10 ตัวอักษรแรกของ abacabacabacabac... ตัวอักษร b ปรากฏ 2 ครั้ง หมายเหตุ - ใช้ str และ ch ในเคสเดียวกัน (case-sen

  6. นับจำนวนครั้งที่ค่าเฉลี่ยของอาร์เรย์กับตัวเลขกำหนดปรากฏในอาร์เรย์ด้วย C++

    ได้รับอาร์เรย์ arr[] ที่มีสมาชิกจำนวนเต็ม และจำนวนเต็ม num เป้าหมายคือหาค่าเฉลี่ยของแต่ละสมาชิก arr[i] กับ num และพิมพ์จำนวนครั้งที่ค่าเฉลี่ยนั้นปรากฏในอาร์เรย์เดิม ถ้า arr[] = [5, 2, 3] และ num = 2 ค่าเฉลี่ยจะเป็น [3, 2, 2] จำนวนครั้งใน arr[] คือ [1, 1, 1] ตัวอย่าง Input arr[] = { 1, 6, 4, 3, 6, 4

  7. นับทริปเล็ตใน Doubly Linked List เรียงลำดับที่ผลคูณเท่ากับ x ด้วย C++

    ได้รับ Doubly Linked List ที่เรียงลำดับแล้วและมีค่าจำนวนเต็ม เป้าหมายคือหาทริปเล็ตที่ผลคูณ (product) เท่ากับค่า x ที่กำหนด ถ้าลิงค์ลิสต์คือ 3-4-1-2 และ x=6 จำนวนจะเป็น 1 (ทริปเล็ต (3,1,2)) ตัวอย่าง Input linked list: [ 200-4-16-5-10-10-2 ] x=200 Output Count of triplets in a sorted doubly linked l

  8. นับทริปเล็ตใน Doubly Linked List เรียงลำดับที่ผลรวมเท่ากับ x ด้วย C++

    ได้รับ Doubly Linked List ที่เรียงลำดับแล้วและมีค่าจำนวนเต็ม เป้าหมายคือหาทริปเล็ต (triplets) ที่ผลรวมเท่ากับค่า x ที่กำหนด ถ้าลิงค์ลิสต์คือ 3-4-13-5-10-10-0 และ x=20 จำนวนจะเป็น 2 (ทริปเล็ต (3,4,13) และ (10,10,0)) ตัวอย่าง Input linked list: [ 3-4-13-5-10-10-0 ] x=20 Output Count of triplets in a

  9. นับจำนวนที่สร้างได้จาก N โดยบวก 1 และลบศูนย์นำหน้าด้วย C++

    ได้รับจำนวน N เป็นอินพุต ทำสองขั้นตอนกับ N และหาจำนวนตัวเลขที่ไม่ซ้ำกันที่สร้างขึ้น ขั้นตอนคือ: บวก 1 เข้ากับตัวเลข ลบศูนย์นำหน้าออกจากตัวเลขที่ได้ (ถ้ามี) ถ้า N=8 ตัวเลขที่ได้จะเป็น: ขั้นตอน 1: 8 → 9 → ขั้นตอน 2: 1 → (ลบ 0 จาก 10) ขั้นตอน 1: 2 → 3 → 4 → 5 → 6 → 7 → 8 (ลำดับเดิมซ้ำ) จำนวนตัวเลขที่

  10. นับเลข Unary ในช่วงด้วย C++

    ได้รับตัวเลขสองจำนวน start และ end แทนช่วง เป้าหมายคือหาจำนวนเลข Unary (Unary numbers) ที่อยู่ในช่วง [start, end] เราสามารถตรวจสอบได้ว่าเลขเป็น Unary หรือไม่ ด้วยขั้นตอน: ถ้าเลข 13 แล้ว 12 + 32 = 10 แล้ว 12 + 02 = 1 ผลรวมสุดท้ายเป็น 1 ดังนั้น 13 เป็น Unary ตัวอย่าง Input start=1 end=20 Output Count

  11. นับศูนย์นำหน้าในแฟกทอเรียลของตัวเลขด้วย C++

    ได้รับจำนวนเต็มเป็นอินพุต เป้าหมายคือหาจำนวนศูนย์นำหน้า (trailing zeros) ในแฟกทอเรียลของตัวเลขนั้น แฟกทอเรียลของ N คือผลคูณของทุกตัวเลขในช่วง [1, N] เรารู้ว่าจะได้ศูนย์นำหน้าเมื่อตัวเลขเป็นจำนวนเท่าของ 10 หรือมีคู่ตัวประกอบ (2,5) ในแฟกทอเรียลของตัวเลขที่มากกว่า 5 จำนวน 2 ในการแยกตัวประกอบเฉพาะจะมากก

  12. นับวิธีแบ่งวงกลมด้วยเส้นเชื่อม N เส้นที่ไม่กันเองด้วย C++

    ได้รับจำนวนเต็ม N เป็นอินพุตสำหรับจำนวนเส้นเชื่อม (chords) ในวงกลมที่มีจุดปลาย 2×N จุด เป้าหมายคือนับจำนวนวิธีที่สามารถแบ่งวงกลมได้โดยใช้เส้นเชื่อมเหล่านี้ โดยที่ไม่มีเส้นเชื่อมไหนตัดกัน สำหรับ N=3 จะมี 6 จุด 1 วิธีได้ 3 เส้นเชื่อมคือระหว่าง 1-2, 3-4, 5-6 วิธีอื่นๆ: 1-6, 2-5, 3-4 1-2, 3-6, 4-5 1-4,

  13. นับวิธีแสดงจำนวน n เป็นผลรวมจำนวนคี่ด้วย C++

    ได้รับจำนวนเต็ม n เป็นอินพุต เป้าหมายคือหาจำนวนวิธีที่เราสามารถแสดง n เป็นผลรวมของจำนวนคี่ (odd integers) ตัวอย่างเช่น ถ้า n=3 สามารถแสดงเป็นผลรวม (1+1+1) และ (3) รวม 2 วิธี ตัวอย่าง Input n=6 Output Count of ways to express n as sum of odd integers are: 8 Explanation The ways in which we can expre

  14. นับวิธีแสดงจำนวนเป็นผลรวมจำนวนต่อเนื่องด้วย C++

    ได้รับจำนวนเต็ม n เป็นอินพุต เป้าหมายคือหาจำนวนวิธีที่เราสามารถแสดง num เป็นผลรวมของจำนวนธรรมชาติที่ต่อเนื่องกันสองตัวขึ้นไป ตัวอย่างเช่น ถ้า n=3 สามารถแสดงเป็นผลรวม (1+2) ได้ รวม 1 วิธี ตัวอย่าง Input num=6 Output Count of ways to express a number as sum of consecutive numbers are: 1 Explanation T

  15. นับวิธีแสดงจำนวนเป็นผลรวมของกำลังด้วย C++

    ได้รับตัวเลขสองจำนวน num และ power เป็นอินพุต เป้าหมายคือหาจำนวนวิธีที่ num สามารถแสดงเป็นผลรวมของจำนวนธรรมชาติที่ไม่ซ้ำกัน ยกกำลังตาม power ที่กำหนด ถ้า num=10 และ power=2 แล้ว 10 = 12 + 32 รวม 1 วิธี ตัวอย่าง Input num=30 Output Count of ways to express a number as sum of powers are: 2 Explanatio

  16. นับวิธีทำคะแนนด้วย 1 และ 2 ไม่มี 2 ติดกันด้วย C++

    ได้รับคะแนน (score) เป้าหมายคือทำคะแนนให้ได้ตามเป้าหมาย โดยนักตีสามารถทำได้ 1 หรือ 2 คะแนนต่อลูกเท่านั้น ข้อจำกัดคือไม่สามารถทำ 2 คะแนนติดกันได้ ตัวอย่างเช่น เพื่อทำคะแนน 6 สามารถทำได้แบบ: 1+2+1+2 แต่ไม่สามารถทำ 2+2+1+1 หรือแบบอื่นที่มี 2 ติดกันได้ ตัวอย่าง Input score=4 Output Count of ways to rea

  17. นับจำนวนช่องที่บิชอปเดินได้ในหนึ่งนัดด้วย C++

    บนกระดานหมากรุกขนาด 8×8 กำหนดตำแหน่งของบิชอป (Bishop) ในรูปแบบแถวและคอลัมน์ เป้าหมายคือหาจำนวนช่องทั้งหมดที่บิชอปสามารถเดินไปได้ในหนึ่งนัด เรารู้ว่าบิชอปเดินได้ทุกทิศทาง (เฉียงซ้ายบน/ล่าง และขวาบน/ล่าง) ตัวอย่าง Input row = 5, column = 4 Output Count of total number of squares that can be visited

  18. นับตัวเลขที่ลดเหลือศูนย์หรือติดลบได้ในเกมด้วย C++

    ได้รับอาร์เรย์จำนวนบวก และจำนวนเต็มสองจำนวน A และ B มีผู้เล่นสองคนเล่นเกมลดตัวเลขในอาร์เรย์ ผู้เล่น 1 ลดสมาชิกใดๆ ในอาร์เรย์ลง A และผู้เล่น 2 เพิ่มสมาชิกใดๆ ในอาร์เรย์ขึ้น B เป้าหมายคือหาจำนวนตัวเลขที่ผู้เล่น 1 สามารถลดให้เหลือ 0 หรือติดลบได้ ผู้เล่น 1 ทำท่อน้ำแรก ตัวเลขที่ลดเหลือ 0 หรือติดลบแล้ว ไม

  19. นับจำนวนวิธีเดินทางในเมทริกซ์ด้วย C++

    ได้รับเมทริกซ์ 2 มิติ ขนาด row × col เป้าหมายคือนับจำนวนวิธีที่สามารถเดินทางจากเซลล์ (0,0) ไปยังเซลล์ (row, col) โดยใช้การเคลื่อนที่ไปขวา (right) และลง (down) เท่านั้น คือ ขั้นแรกจาก (0,0) ไป (0,1) (ลง) หรือ (1,0) (ขวา) ไม่ใช่ (1,1) (เฉียง) ตัวอย่าง Input col = 2; row = 4 Output Count of number of

  20. นับวิธีปูกระเบื้องพื้นขนาด n x m ด้วยกระเบื้อง 1 x m ใน C++

    ได้รับตัวเลขสองจำนวน n และ m แทนความยาวและความกว้างของพื้นห้อง เป้าหมายคือนับจำนวนวิธีที่สามารถปูพื้นนี้ได้โดยใช้กระเบื้องขนาด 1×m ตัวอย่าง Input n=3 m=2 Output Count the number of ways to tile the floor of size n x m using 1 x m size tiles are: 3 Explanation วิธีการจะเป็นการจัดกระเบื้อง 1x2 สามชิ้

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:240/301  20-คอมพิวเตอร์/Page Goto:1 234 235 236 237 238 239 240 241 242 243 244 245 246