Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. หาสามองค์ประกอบที่ใกล้ที่สุดจากอาร์เรย์เรียงลำดับ 3 อาร์เรย์ ด้วย C++

    สมมติว่ามีอาร์เรย์เรียงลำดับ 3 อาร์เรย์ คือ A, B และ C และสามองค์ประกอบ i, j และ k จาก A, B และ C ตามลำดับ ซึ่งทำให้ max(|A[i] – B[j]|, |B[j] – C[k]|, |C[k] – A[i]|) ถูกминимизация (หาค่าน้อยที่สุด) ดังนั้นถ้า A = [1, 4, 10], B = [2, 15, 20], และ C = [10, 12] องค์ประกอบที่ได้คือ 10, 15, 10 ทั้งสามมา

  2. หาสี่องค์ประกอบ a, b, c และ d ในอาร์เรย์ ที่ a+b = c+d ด้วย C++

    สมมติว่ามีรายการจำนวนเต็ม งานของเราคือการหาจำนวนเต็ม 4 ตัวที่แตกต่างกัน เป็นสองคู่ เช่น (a, b) และ (c, d) ซึ่ง a+b = c+d หากมีคำตอบหลายคำตอบ ให้พิมพ์เพียงคำตอบเดียว สมมติว่าองค์ประกอบอาร์เรย์คือ A = [7, 5, 9, 3, 6, 4, 2] คู่ที่เป็นไปได้คือ (7, 3) และ (6, 4) ที่นี่เราจะใช้เทคนิคการแฮช (Hashing) เราใช

  3. หาความถี่ของแต่ละองค์ประกอบในอาร์เรย์ช่วงจำกัดในเวลาน้อยกว่า O(n) ด้วย C++

    สมมติว่ามีอาร์เรย์ของจำนวนเต็ม อาร์เรย์คือ A และขนาดคือ n งานของเราคือการหาความถี่ของทุกองค์ประกอบในอาร์เรย์ในเวลาน้อยกว่า O(n) ขนาดขององค์ประกอบต้องน้อยกว่าค่าใดค่าหนึ่ง คือ M ที่นี่เราจะใช้วิธีการค้นหาแบบทวิภาค (Binary Search) เราจะแบ่งอาร์เรย์ออกเป็นสองส่วนอย่างเรียกซ้ำหากองค์ประกอบปลายทางต่างกัน

  4. โปรแกรม C++ หา GCD ของ a^n และ c โดยที่ a, n และ c มีค่าจาก 1 ถึง 10^9

    เราต้องหา GCD ของสองตัวเลข ซึ่งหนึ่งตัวเลขอาจใหญ่ถึง (10^9 ^ 10^9) ซึ่งไม่สามารถเก็บในชนิดข้อมูลอย่าง long หรืออื่นๆ ได้ ดังนั้นถ้าตัวเลขคือ a = 10248585, n = 1000000, b = 12564 ผลลัพธ์ของ GCD(a^n, b) จะเป็น 9 เนื่องจากตัวเลขยาวมาก เราไม่สามารถใช้อัลกอริทึมยุคลิดได้ เราต้องใช้การยกกำลังแบบโมดูลาร์

  5. โปรแกรม C++ ตรวจสอบว่าอาร์เรย์มีสตริงที่ต่างกันเพียงหนึ่งตัวอักษรหรือไม่

    สมมติว่าเรามีสตริง s และอีกอาร์เรย์ของสตริง A เราต้องหาว่าอาร์เรย์มีสตริงที่ต่างจากสตริงปัจจุบันเพียงหนึ่งตัวอักษรของความยาวที่ต่างกันหรือไม่ สมมติสตริงเป็น banana และอาร์เรย์เป็น [bana, orange, banaba, banapy] ผลลัพธ์จะเป็น true เนื่องจากมีสตริง banaba ที่นี่ตัวอักษรเพียงตัวเดียวที่ต่างจาก banana

  6. โปรแกรม C++ ตรวจสอบว่านิพจน์มีวงเล็บซ้ำหรือไม่

    พิจารณาว่าเรามีนิพจน์ exp และเราต้องตรวจสอบว่า exp มีชุดวงเล็บซ้ำหรือไม่ นิพจน์จะมีวงเล็บซ้ำหากหนึ่ง sub-expression จะถูกล้อมรอบด้วยวงเล็บมากกว่าหนึ่งคู่ ตัวอย่างเช่น ถ้านิพจน์เป็น: (5+((7-3))) ที่นี่ sub-expression (7 - 3) ถูกล้อมรอบด้วยสองคู่วงเล็บ ดังนั้นนี่คือวงเล็บซ้ำ เพื่อแก้ปัญหานี้ เราจะ

  7. โปรแกรม C++ ตรวจสอบว่าตัวเลขที่กำหนดอยู่ในอนุกรมอนันต์หรือไม่

    สมมติว่าเรามีจำนวนเต็มสามจำนวน a, b และ c สมมติว่าในอนุกรมอนันต์ a คือพจน์แรก และ c คือความต่างร่วม เราต้องตรวจสอบว่า b อยู่ในอนุกรมหรือไม่ สมมติค่าเป็น a = 1, b = 7 และ c = 3 อนุกรมจะเป็น 1, 4, 7, 10, ... ดังนั้น 7 อยู่ในอนุกรม ผลลัพธ์จะเป็น yes เพื่อแก้ปัญหานี้ เราต้องทำตามสองขั้นตอนนี้: เมื่อ

  8. โปรแกรม C++ หาดัชนีของทุกครั้งที่พบสตริงหนึ่งในอีกสตริงหนึ่ง

    สมมติว่าเรามีสตริง str และอีก substring sub_str เราต้องหาดัชนีสำหรับทุกครั้งที่พบ sub_str ใน str สมมติ str คือ aabbababaabbbabbaaabba และ sub_str คือ abb ดัชนีจะเป็น 1 9 13 18 เพื่อแก้ปัญหานี้ เราสามารถใช้ฟังก์ชัน substr() ใน C++ STL ฟังก์ชันนี้รับตำแหน่งเริ่มต้นที่จะเริ่มตรวจสอบ และความยาวของ sub

  9. โปรแกรม C++ หาส่วนตัดร่วมของช่วงทั้งหมด (Intervals)

    สมมติว่าเรามี N ช่วงในรูปแบบ {L, R} L คือเวลาเริ่มต้น และ R คือเวลาสิ้นสุด เราต้องหาส่วนตัดร่วมของทุกช่วง ส่วนตัดร่วมคือช่วงที่อยู่ภายในช่วงที่กำหนดทั้งหมด หากไม่พบ ให้คืนค่า -1 ตัวอย่างเช่น ถ้าช่วงเป็น [{1, 6}, {2, 8}, {3, 10}, {5, 8}] ช่วงผลลัพธ์คือ {5, 6} เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่า

  10. โปรแกรม C++ หา k จำนวนที่เป็นกำลังของ 2 และมีผลรวมเท่ากับ N

    สมมติว่าเรามีตัวเลขสองตัว N และ K งานคือพิมพ์ K จำนวน ซึ่งเป็นกำลังของ 2 และผลรวมของพวกเขาคือ N หากไม่เป็นไปได้ ให้คืนค่า -1 สมมติ N = 9 และ K = 4 ผลลัพธ์จะเป็น 4 2 2 1 ซึ่งผลรวมคือ 9 จำนวนองค์ประกอบคือ 4 และทุกตัวเป็นกำลังของ 2 เราต้องทำตามขั้นตอนเหล่านี้เพื่อแก้ปัญหานี้: ถ้า k น้อยกว่าจำนวนบิตท

  11. โปรแกรม C++ หาค่า d สูงสุดในอาร์เรย์ที่ทำให้ a + b + c = d

    สมมติว่าเรามีชุดของจำนวนเต็ม เราต้องหาตัวเลข d ที่ d = a + b + c และเราต้องเพิ่มค่า (a + b + c) ให้มากที่สุด a, b, c และ d ทั้งหมดอยู่ในชุด เซตจะมีอย่างน้อยหนึ่งองค์ประกอบ และสูงสุด 1000 องค์ประกอบ แต่ละองค์ประกอบจะเป็นตัวเลขจำกัด ถ้าชุดคือ {2, 3, 5, 7, 12} แล้ว 12 คือ d ที่ใหญ่ที่สุด สามารถแสดงได้

  12. โปรแกรม C++ หาตัวเลข k หลักสุดท้ายในผลคูณของอาร์เรย์

    สมมติว่าเรามีอาร์เรย์ n องค์ประกอบชื่อ A เรามีตัวเลข k อีกตัวหนึ่ง งานของเราคือหาตัวเลข k หลักสุดท้ายของผลคูณขององค์ประกอบในอาร์เรย์ A สมมติ A = [15, 22, 13, 19, 17] ผลคูณคือ 1385670 ตัวเลข k = 3 หลักสุดท้ายคือ 670 เพื่อแก้ปัญหานี้ เราจะคูณตัวเลขภายใต้ modulo 10^k ตัวอย่างโค้ด C++ #include <io

  13. โปรแกรม C++ กลับบิตของตัวเลขอย่างมีประสิทธิภาพ

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่กลับบิตของตัวเลขอย่างมีประสิทธิภาพ สำหรับสิ่งนี้ เราจะได้รับตัวเลขที่ไม่เป็นลบ งานของเราคือแปลงตัวเลขเป็นรูปแบบไบนารี กลับบิตไบนารีของตัวเลข และสุดท้ายพิมพ์ค่าเทียบเท่าทศนิยมของตัวเลข ตัวอย่างโค้ด C++ #include <bits/stdc++.h> using namespace std; // inve

  14. โปรแกรม C++ หาความยาวของ Linked List แบบ Iterative และ Recursive

    ที่นี่เราจะดูวิธีหาความยาวของ linked list โดยใช้วิธี iterative และ recursive หากตัวชี้ head กำหนด เราต้องทำตามขั้นตอนเหล่านี้เพื่อหาความยาว สำหรับ iterative approach: รับ head ของรายการ จนกว่าตัวชี้ current จะเป็น null ให้ไปยังโหนดถัดไปและเพิ่มจำนวนนับ สำหรับ recursive approach: ส่ง head เป็นอ

  15. โปรแกรม C++ สร้างฮิสโตแกรมจากอาร์เรย์

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่สร้างฮิสโตแกรมจากข้อมูลที่ให้มาภายในอาร์เรย์ สำหรับสิ่งนี้ เราจะได้รับค่าจำนวนเต็มภายในอาร์เรย์ งานของเราคือพล็อตฮิสโตแกรมโดยรักษาค่าของทั้งพิกัด x และ y เท่ากับค่าที่ให้มาในอาร์เรย์ ตัวอย่างโค้ด C++ = 0; i--) { cout.width(2); cout << right << i

  16. โปรแกรม C++ หาลำดับ 1 ติดต่อกันยาวสุดในรูปแบบไบนารีด้วยการพลิกบิตเดียว

    สมมติว่าเรามีจำนวนเต็ม n หนึ่งจำนวน ภายในนั้น เราสามารถทำการพลิกบิตหนึ่งบิตเพื่อสร้างลำดับ 1 ติดต่อกันที่ยาวที่สุด สมมติตัวเลขคือ 13 รูปแบบไบนารีคือ 1101 หากเราทำการพลิกบิตหนึ่งบิต คือ เปลี่ยน 0 เป็น 1 จะกลายเป็น 1111 นี่คือลำดับ 1 ติดต่อกันที่ยาวที่สุด เพื่อแก้ปัญหานี้ เราจะเดินทางผ่านบิตของตัวเล

  17. โปรแกรม C++ หาผลคูณสูงสุดในแต่ละระดับของ Binary Tree

    สมมติว่ามี binary tree หนึ่งต้น มีโหนดบวกและลบ เราต้องหาผลคูณสูงสุดในแต่ละระดับของมัน พิจารณาต้นไม้นี้ ผลคูณของระดับ 0 คือ 4 ผลคูณของระดับ 1 คือ 2 * -5 = -10 และผลคูณของระดับ 2 คือ -1 * 3 * -2 * 6 = 36 นี่คือค่าสูงสุด เพื่อแก้ปัญหานี้ เราจะทำการท่องระดับ (level order traversal) ของต้นไม้ ระหว่า

  18. โปรแกรม C++ คูณเมทริกซ์สองเมทริกซ์

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่คูณเมทริกซ์สองเมทริกซ์ สำหรับสิ่งนี้ เราจะได้รับเมทริกซ์สองเมทริกซ์ และงานของเราคือพิมพ์ผลคูณของเมทริกซ์ทั้งสอง เงื่อนไขเดียวคือจำนวนคอลัมน์ของเมทริกซ์แรกต้องเท่ากับจำนวนแถวของเมทริกซ์ที่สอง ตัวอย่างโค้ด C++ #include <iostream> using namespace std; #defi

  19. โปรแกรม C++ หาผลคูณของหลักสูงสุดในจำนวนที่น้อยกว่าหรือเท่ากับ N

    0 งานคือหาผลคูณของหลักสูงสุดในจำนวนที่น้อยกว่าหรือเท่ากับ N ถ้า N คือ 390 ผลลัพธ์คือ 216 เนื่องจากตัวเลข 389 ทำให้ได้ผลคูณสูงสุด 3 * 8 * 9 = 216 เพื่อแก้ปัญหานี้ เราจะใช้แนวคิดเวียนเกิด (recursive) ดังนั้นถ้า N = 0 ให้คืนค่า 1 ถ้าตัวเลข N < 10 ให้คืนค่า N มิฉะนั้นให้คืนค่า max(max_product(N/10) *

  20. โปรแกรม C++ พิมพ์ตัวอักษร 'N' โดยใช้รูปแบบตัวเลข 1 ถึง n

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่พิมพ์ตัวอักษร N โดยใช้รูปแบบตัวเลขจาก 1 ถึง n สำหรับสิ่งนี้ เราจะต้องพิมพ์ตัวอักษรภาษาอังกฤษ N งานของเราคือกำหนดขนาดของตัวอักษรและพิมพ์มันกลับมาโดยใช้ตัวเลขจาก 1 ถึง n ตัวอย่างโค้ด C++ #include <iostream> using namespace std; // printing the letter N voi

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:105/301  20-คอมพิวเตอร์/Page Goto:1 99 100 101 102 103 104 105 106 107 108 109 110 111