Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. Valid Parentheses (วงเล็บที่ถูกต้อง) ใน C++

    คำอธิบายปัญหาสมมติว่าเรามีสมการ (expression) สมการนี้มีวงเล็บบางอย่าง เราต้องตรวจสอบว่าวงเล็บสมดุล (balanced) หรือไม่ ลำดับของวงเล็บคือ (), {} และ [] สมมติมีสตริงสองตัว ()[(){()}] นี้ถูกต้อง แต่ {[}] ไม่ถูกต้องงานนี้ง่าย เราจะใช้ stack (แสต็ก) ทำได้ เราควรทำตามขั้นตอนเหล่านี้เพื่อหาคำตอบ:เดินทางผ่าน

  2. Climbing Stairs (การขึ้นบันได) ใน C++

    คำอธิบายปัญหามีบันได n ขั้น คนหนึ่งจะเดินจากขั้นที่ 1 ถึงขั้นที่ n จำนวนขั้นสูงสุดที่เขา/เธอสามารถข้ามได้ในหนึ่งก้าว ก็ได้รับการกำหนด ด้วยข้อมูลนี้ เราต้องหาวิธีที่เป็นไปได้ในการไปถึงขั้นที่ n สมมติว่าข้ามได้สูงสุด 2 ขั้นต่อก้าว เราสามารถหาความสัมพันธ์เวียนได้ วิธีไปถึงขั้น n คือมาจากขั้น (n-1) หรือ

  3. สามเหลี่ยมปาสคาล (Pascal's Triangle) ใน C++

    คำอธิบายปัญหาสามเหลี่ยมปาสคาล (Pascals Triangle) เป็นอาร์เรย์ของสัมประสิทธิ์ทวินาม (binomial coefficients) แถวบนสุดหมายเลข n=0 และในแต่ละแถวหมายเลขจากซ้ายเริ่มที่ k = 0 แต่ละตัวเลขหาได้โดยการบวกสองตัวเลขที่อยู่ในแถวก่อนหน้าและอยู่ตรงเหนือเซลล์ปัจจุบัน มันยังสามารถสร้างได้โดยการหา (𝑛𝐶𝑘) สำหรับหมาย

  4. Majority Element (องค์ประกอบส่วนใหญ่) ใน C++

    คำอธิบายปัญหาสมมติว่าเรามีอาร์เรย์ เราต้องตรวจสอบว่าตัวเลข x ที่กำหนดเป็น Majority Element ของอาร์เรย์นั้นหรือไม่ อาร์เรย์ถูกเรียงลำดับแล้ว องค์ประกอบหนึ่งถูกกล่าวว่าเป็น Majority Element เมื่อมันปรากฏ n/2 ครั้งในอาร์เรย์ สมมติอาร์เรย์เป็น {1, 2, 3, 3, 3, 3, 6}, x = 3 คำตอบคือ true เพราะ 3 เป็น Majo

  5. Excel Sheet Column Number (หมายเลขคอลัมน์ Excel) ใน C++

    คำอธิบายปัญหาเรารู้ว่าหมายเลขคอลัมน์ Excel เป็นตัวอักษร เริ่มจาก A และหลัง Z จะเป็น AA, AB, จนถึง ZZ แล้วค่อยเป็น AAA, AAB, จนถึง ZZZ และต่อไปเรื่อยๆ ดังนั้นคอลัมน์ 1 คือ A คอลัมน์ 27 คือ Z ที่นี่เราจะดูวิธีหาตัวอักษรคอลัมน์ถ้ารู้หมายเลขคอลัมน์ เช่นถ้าหมายเลขคอลัมน์คือ 80 จะได้ CBสมมติว่าเรามีตัวเลข

  6. จำนวนศูนย์ต่อท้ายของแฟกทอเรียล (Factorial Trailing Zeroes) ใน C++

    คำอธิบายปัญหาที่นี่เราจะดูวิธีคำนวณจำนวนศูนย์ต่อท้าย (trailing zeros) ของผลลัพธ์แฟกทอเรียลของจำนวนใดๆ เช่นถ้า n = 5 แล้ว 5! = 120 มีศูนย์ต่อท้ายเพียง 1 ตัว สำหรับ 20! จะเป็น 4 ศูนย์ เพราะ 20! = 2432902008176640000วิธีที่ง่ายที่สุดคือคำนวณแฟกทอเรียลแล้วนับศูนย์ แต่วิธีนี้ล้มเหลวสำหรับค่า n ที่ใหญ่ ดั

  7. Ugly Number (เลข醜陋) ใน C++

    คำอธิบายปัญหาUgly numbers คือจำนวนที่ตัวประกอบเฉพาะ (prime factors) มีแค่ 2, 3 หรือ 5 จาก 1 ถึง 15 มี Ugly numbers 11 ตัว คือ 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15 เลข 7, 11, 13 ไม่ใช่ Ugly เพราะเป็นจำนวนเฉพาะ เลข 14 ไม่ใช่ Ugly เพราะในตัวประกอบเฉพาะมี 7 อยู่ ดังนั้น ถ้าต้องการหา Ugly number ลำดับที่ 1

  8. Range Sum Query - Immutable (คิวรี่ผลรวมช่วง - ไม่เปลี่ยนแปลง) ใน C++

    คำอธิบายปัญหาสมมติว่าเรามีอาร์เรย์ของจำนวนเต็ม เราต้องหาผลรวมขององค์ประกอบที่อยู่ระหว่างดัชนี i ถึง j มี 2 สิ่งต้องระวัง: อาร์เรย์จะเป็น immutable (ไม่เปลี่ยนแปลง) ดังนั้นองค์ประกอบจะไม่ถูกแก้ไข และจะมีหลายคิวรี่แบบนี้ ดังนั้นเราต้องคำนึงถึงเวลาการทำงานสำหรับจำนวนคิวรี่มาก สมมติอาร์เรย์คือ A = [5, 8

  9. เลข Tribonacci ลำดับที่ N ใน C++

    คำอธิบายปัญหาสมมติว่าเรามีค่า n เราต้องสร้างเลข Tribonacci ลำดับที่ n เลข Tribonacci คล้ายกับเลข Fibonacci แต่นี่เราสร้างพจน์ใหม่โดยการบวกสามพจน์ก่อนหน้า สมมติว่าเราต้องการสร้าง T(n) สูตรจะเป็นดังนี้:T(n) = T(n - 1) + T(n - 2) + T(n - 3)พจน์แรกๆ สำหรับเริ่มต้น คือ {0, 1, 1}เราสามารถแก้ได้โดยอัลกอริท

  10. หาวันในสัปดาห์ (Day of the Week) ใน C++

    คำอธิบายปัญหาสมมติว่าเรามีวันที่ (วัน เดือน และ ปี) จากวันที่นี้ เราต้องหาวันในสัปดาห์ของวันที่กำหนดนั้น เพื่อแก้ปัญหานี้ เราจะใช้ Zellers Algorithm สูตรในการหาวันในสัปดาห์โดยใช้ Zellers Algorithm คือ:𝑤=$$\lgroup d+\lfloor \frac{13(m+1)}{5} \rfloor+y+\lfloor\frac{y}{4} \rfloor+\lfloor\frac{c}{4} \r

  11. หาตัวเลขที่หายไปในลำดับเลขคณิต (Arithmetic Progression) ด้วย C++

    คำอธิบายปัญหาสมมติว่าเรามีอาร์เรย์ที่แสดงองค์ประกอบของลำดับเลขคณิต (Arithmetic Progression) ตามลำดับ มีองค์ประกอบหนึ่งหายไป เราต้องหาองค์ประกอบที่หายไปนั้น เช่นถ้า arr = [2, 4, 8, 10, 12, 14] ผลลัพธ์คือ 6 เพราะ 6 หายไปเราสามารถแก้ปัญหานี้ได้ด้วยการค้นหาแบบทวิภาค (Binary Search) เราจะไปที่องค์ประกอบก

  12. หาค่าสูงสุดในอาร์เรย์ที่เรียงแล้วและหมุน (Sorted and Rotated Array) ใน C++

    คำอธิบายกำหนดอาร์เรย์ที่เรียงลำดับแล้วขององค์ประกอบที่ไม่ซ้ำกัน ซึ่งถูกหมุน (rotated) ที่จุดที่ไม่ทราบ งานคือการหาค่าสูงสุดในอาร์เรย์ตัวอย่างถ้าอาร์เรย์นำเข้าคือ {30, 40, 50, 10, 20} ค่าสูงสุดคือ 50อัลกอริทึมค่าสูงสุดคือองค์ประกอบเพียงตัวเดียวที่องค์ประกอบถัดไปของมันมีค่าน้อยกว่า ถ้าไม่มีองค์ประกอบถ

  13. หาค่าสูงสุดในอาร์เรย์ขนาดใหญ่มากโดยใช้ pthreads ใน C++

    คำอธิบายปัญหากำหนดอาร์เรย์จำนวนเต็มขนาดใหญ่มาก หาค่าสูงสุดภายในอาร์เรย์โดยใช้ multithreading (หลายเธรด)ตัวอย่างถ้าอาร์เรย์นำเข้าคือ {10, 14, -10, 8, 25, 46, 85, 1673, 63, 65, 93, 101, 125, 50, 73, 548} แล้วค่าสูงสุดในอาร์เรย์นี้คือ 1673อัลกอริทึมให้ขนาดอาร์เรย์เป็น total_elementsสร้าง N เธรด (thread

  14. ผลรวมสมดุลสูงสุดในอาร์เรย์ (Maximum Equilibrium Sum) ใน C++

    คำอธิบายปัญหากำหนดอาร์เรย์ arr[] หาค่าสูงสุดของ prefix sum ซึ่งก็คือ suffix sum สำหรับดัชนี i ใน arr[]ตัวอย่างถ้าอาร์เรย์นำเข้าคือ –Arr[] = {1, 2, 3, 5, 3, 2, 1} ผลลัพธ์คือ 11 ดังนี้:Prefix sum = arr[0..3] = 1 + 2 + 3 + 5 = 11 และSuffix sum = arr[3..6] = 5 + 3 + 2 + 1 = 11อัลกอริทึมเดินทางผ่านอาร์เร

  15. ความแตกต่างระหว่าง Fundamental Data Types และ Derived Data Types ใน C++

    บทนำในการเขียนโปรแกรม ชนิดข้อมูล (data type) หมายถึงประเภทและลักษณะของข้อมูลที่ผู้ใช้ต้องการจะใช้ คอมไพเลอร์หรืออินเตอร์พรีเตอร์จะจัดการตามชนิดข้อมูล และจัดสรรพื้นที่จัดเก็บในหน่วยความจำหลัก (main memory) ตามนั้นจากลักษณะของข้อมูล ชนิดข้อมูลหลักแบ่งได้ 2 ประเภท คือ Fundamental Data Type (ชนิดข้อมูลพ

  16. ความยาวสูงสุดของซับสตริงคู่ที่เป็นการเรียงใหม่ของพาลินโดรมใน C++

    คำอธิบายปัญหากำหนดสตริง งานคือการหาความยาวสูงสุดของซับสตริงที่สามารถเรียงใหม่เป็นพาลินโดรม (Palindrome) ได้ตัวอย่างถ้าสตริงนำเข้า = 5432112356 คำตอบคือ 6 เพราะพาลินโดรมซับสตริงสูงสุดคือ 321123 และความยาวคือ 6อัลกอริทึมถ้าความยาวของซับสตริงเป็นคี่ จะไม่สามารถพิจารณาในคำตอบสุดท้ายได้ถ้าความยาวของซับสต

  17. จำนวนเกมสูงสุดที่ผู้ชนะเล่นใน C++

    คำอธิบายปัญหามีผู้เล่น N คนที่กำลังแข่งขันในทัวร์นาเมนต์ เราต้องการหาจำนวนเกมสูงสุดที่ผู้ชนะอาจจะต้องเล่น ในทัวร์นาเมนต์นี้ สองผู้เล่นได้รับอนุญาตให้เล่นกันก็ต่อเมื่อความต่างของจำนวนเกมที่พวกเขาเล่นมาไม่เกิน 1ตัวอย่างถ้ามีผู้เล่น 3 คน ต้องใช้ 2 เกมเพื่อตัดสินผู้ชนะ ดังนี้:เกม – 1: ผู้เล่น 1 ต่อ ผู้เ

  18. ความสูงสูงสุดของการจัดเรียงสามเหลี่ยมจากค่าอาร์เรย์ใน C++

    คำอธิบายปัญหากำหนดอาร์เรย์ เราต้องการหาความสูงสูงสุดของสามเหลี่ยมที่เราสามารถสร้างได้ จากค่าในอาร์เรย์ โดยที่ทุกระดับ (i+1) ต้องมีจำนวนองค์ประกอบมากกว่า และผลรวมมากกว่าระดับก่อนหน้าตัวอย่างถ้าอาร์เรย์นำเข้าคือ {40, 100, 20, 30} คำตอบคือ 2 ดังนี้:เราสามารถวาง 100 และ 20 ที่ระดับล่าง และ 40 หรือ 30 ที

  19. ความยาวสูงสุดของซับอาร์เรย์ที่มีเฉพาะ Ugly Numbers ใน C++

    คำอธิบายปัญหากำหนดอาร์เรย์ arr[] ของ N องค์ประกอบ (0 ≤ arr[i] ≤ 1000) งานคือการหาความยาวสูงสุดของซับอาร์เรย์ที่มีเฉพาะ Ugly NumbersUgly Numbers คือจำนวนที่ตัวประกอบเฉพาะ (prime factors) มีแค่ 2, 3 หรือ 5 เท่านั้นตัวอย่างเลข Ugly Numbers แรกๆ: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15,...ตัวอย่างถ้าอาร์เรย์

  20. ความยาวไม้สูงสุดสำหรับคนที่ Q ใน C++

    คำอธิบายปัญหากำหนดความยาวของไม้ n ไม้ในอาร์เรย์ ถ้าคนคนใดคนหนึ่งเลือกไม้ไหนก็ตาม ครึ่งหนึ่งของไม้ที่ยาวที่สุด (หรือ (max + 1) / 2) จะถูกมอบให้ และส่วนที่เหลือ (max – 1) / 2 จะถูกนำกลับไปใส่ สามารถสมมติได้ว่ามีไม้เพียงพอเสมอ ตอบคำถาม M คำถามที่ให้มาในอาร์เรย์ q[] เพื่อหาความยาวไม้ที่ใหญ่ที่สุดที่มีอย

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:118/301  20-คอมพิวเตอร์/Page Goto:1 112 113 114 115 116 117 118 119 120 121 122 123 124