Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. ตรวจสอบว่ากราฟแบบไม่มีทิศทางมีเซตอิสระขนาดที่กำหนดหรือไม่ใน C++

    แนวคิด สำหรับกราฟแบบไม่มีทิศทางที่กำหนด ให้ตรวจสอบว่ามีเซตอิสระ (independent set) ขนาด l หรือไม่ หากมีให้พิมพ์ Yes มิฉะนั้นพิมพ์ No เซตอิสระในกราฟหมายถึงเซตของจุดยอดที่ไม่มีการเชื่อมต่อโดยตรงระหว่างกัน อินพุต L = 4, graph = [[1, 0, 1, 0, 0], [0, 1, 1, 0, 0], [1, 1, 1, 1, 1], [0, 0, 1, 1, 0], [0, 0,

  2. ตรวจสอบ Vertical Level ของ Binary Tree ว่าเรียงลำดับหรือไม่ใน C++

    แนวคิด กำหนด Binary Tree ตรวจสอบว่า Vertical Level ที่กำหนด l เรียงลำดับ (Sorted) หรือไม่ (กรณีโหนดทับซ้อน ให้ดูลำดับใน Level นั้น) ตัวอย่างที่ 1 Tree: Level l = -1 โหนดใน Level -1: 3 → 7 → Sorted (Yes) ตัวอย่างที่ 2 Tree: Level l = 0 โหนด 4 และ 5 ทับซ้อนกันใน Level 0 โหนด Level 0: 2 → 4 → 5 → So

  3. ตรวจสอบว่าได้อัตราส่วนจากช่วงราคาและปริมาณที่กำหนดใน C++

    แนวคิด กำหนดช่วงราคา [lowCost, upCost] และช่วงปริมาณ [lowQuant, upQuant] ตรวจสอบว่าสามารถได้อัตราส่วน r = cost/quantity ที่ต้องการหรือไม่ โดย lowCost ≤ cost ≤ upCost และ lowQuant ≤ quantity ≤ upQuant ตัวอย่างที่ 1 Input: lowCost=2, upCost=10, lowQuant=3, upQuant=9, r=3 Output: Yes cost = r × quant

  4. ตรวจสอบการจัดวางถ้วยและจานรองให้เรียบร้อยได้ใน C++

    แนวคิด กำหนดถ้วย 3 ประเภท p[] และจานรอง 3 ประเภท q[] พร้อมชั้นวาง m ชั้น ตรวจสอบว่าจัดได้เรียบร้อยหรือไม่ กติกาการจัด ชั้นใดชั้นหนึ่งไม่สามารถมีทั้งถ้วยและจานรองร่วมกัน ถ้วยต่อชั้นสูงสุด 5 ใบ จานรองต่อชั้นสูงสุด 10 ใบ ตัวอย่างที่ 1 Input: p[] = {4, 3, 7}, q[] = {5, 9, 10}, m = 11 Output: Yes ถ้

  5. ตรวจสอบว่ามี Path ยาวกว่า k จาก Source ในกราฟ C++

    แนวคิด k หรือไม่ ตัวอย่าง กราฟ 9 โหนด (ดูภาพ) Source s = 0, k = 64 → True (มี path 0→7→1→2→8→6→5→3→4 ความยาว 68) Source s = 0, k = 70 → False (Longest path = 69) เหตุผลที่ BFS/DFS ธรรมดาไม่ได้ เลือก Edge หนักสุดทีละขั้น (Greedy) ไม่ได้ เพราะ Edgeเบาๆ อาจนำไปสู่ Path ยาวกว่าได้ แนวทาง: Backtrack

  6. หาว่ามี Triplet ใน Balanced BST ที่ผลรวมเป็นศูนย์หรือไม่ใน C++

    สมมติว่าเรามี balanced binary search tree เราต้องสร้างฟังก์ชันชื่อ is_valid_triplet() ที่คืนค่า true เมื่อมี triplet ใน BST ที่กำหนดซึ่งผลรวมเท่ากับ 0 มิฉะนั้นคืนค่า false ออกแบบวิธีการโดยปฏิบัติตามข้อจำกัดเหล่านี้ −expected time complexity คือ O(n^2)O(logn) extra space สามารถใช้ได้ดังนั้น ถ้า

  7. หา Index i ที่ Prefix ของ S1 และ Suffix ของ S2 จนถึง i สร้าง Palindrome เมื่อรวมกันใน C++

    แนวคิดเมื่อได้รับสตริงสองสตริง S1 และ S2 ที่มีความยาวเท่ากัน งานของเราคือหา index i ที่ทำให้ S1[0…i] และ S2[i+1…n-1] ให้ palindrome เมื่อต่อกัน พบว่าถ้าไม่สามารถหา index ดังกล่าวได้ให้พิมพ์ -1อินพุตS1 = “pqrsu”, S2 = “wxyqp”เอาต์พุต1S1[0..1] = “pq”,

  8. หา Index ของ 0 ที่ควรแทนที่ด้วย 1 เพื่อให้ได้ลำดับ 1 ต่อเนื่องที่ยาวที่สุดใน Binary Array - Set-2 ใน C++

    แนวคิดเมื่อได้รับอาร์เรย์ของ 0 และ 1 ให้หาตำแหน่งของ 0 ที่ควรแทนที่ด้วย 1 เพื่อให้ได้ maximum continuous sequence of 1s ในกรณีนี้ expected time complexity คือ O(n) และ auxiliary space คือ O(1)อินพุตarr[] = {1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1}เอาต์พุตIndex 10ให้ array index เริ่มจาก 0 การแทนที่ 0

  9. หา Itinerary จากรายการตั๋วที่กำหนดใน C++

    สมมติว่าเรามีรายการตั๋วที่แทนด้วยคู่ของสนามบินออกเดินทางและถึง เช่น [from, to] เราต้องหา itinerary ตามลำดับ ตั๋วทั้งหมดเป็นของชายคนหนึ่งที่ออกเดินทางจาก Chennai ดังนั้น itinerary ต้องเริ่มต้นด้วย Chennaiดังนั้น ถ้า input เป็นแบบ [["Mumbai", " Kolkata"], ["Chennai ", &qu

  10. หางานที่เกี่ยวข้องใน Weighted Job Scheduling ใน C++

    สมมติว่าเรามีรายการ N งาน โดยแต่ละงานมี 3 พารามิเตอร์ 1. Start Time 2. Finish Time 3. Profit เราต้องหาส่วนย่อยของงานที่เกี่ยวข้องกับ maximum profit เพื่อที่จะไม่มีงานสองงานในส่วนย่อยที่ overlap กันดังนั้น ถ้า input เป็นแบบ N = 4 และ J = {{2, 3, 55},{4, 6, 25},{7, 20, 150},{3, 150, 250}} แล้ว output

  11. หาตัวอักษรที่ k-th ของ Decrypted String - Set 2 ใน C++

    แนวคิดเมื่อได้รับ encoded string ที่การซ้ำของ substring ถูกบ่งชี้โดย substring ตามด้วยจำนวนของ substring ดังนั้น เช่น ถ้า encrypted string คือ “pq2rs2” และ k=5 output จะเป็น ‘r’ เพราะ decrypted string คือ “pqpqrsrs” และตัวอักษรที่ 5 คือ ‘r’ควรสังเกตว่า

  12. หาองค์ประกอบที่ k-th smallest ใน BST (Order Statistics in BST) ใน C++

    สมมติว่าเรามี binary search tree และค่า K เป็น input เราต้องหา K-th smallest element ใน treeดังนั้น ถ้า input เป็นแบบk = 3 แล้ว output จะเป็น 15เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ −กำหนดฟังก์ชัน find_kth_smallest() ซึ่งจะรับ root, count, kถ้า root เป็น NULL แล้ว −คืนค่า NULLleft =

  13. หาลำดับ Bitonic ที่ยาวที่สุดที่ส่วนเพิ่มและลดมาจากอาร์เรย์ต่างกันใน C++

    แนวคิดเมื่อได้รับอาร์เรย์สองอาร์เรย์ งานของเราคือหาลำดับ Bitonic ที่ยาวที่สุดที่เป็นไปได้ เพื่อให้ increasing part ต้องมาจากอาร์เรย์แรกและต้องเป็น subsequence ของอาร์เรย์แรก ในทางเดียวกัน decreasing part ต้องมาจากอาร์เรย์ที่สองและต้องเป็น subsequence ของมันอินพุตarr1[] = {2, 6, 3, 5, 4, 6}, arr2[] =

  14. หา Palindrome ที่ยาวที่สุดจากการลบหรือสลับตัวอักษรใน String ใน C++

    แนวคิดเมื่อได้รับ string ให้หา palindrome ที่ยาวที่สุดที่สามารถสร้างได้โดยการลบหรือสลับตัวอักษรจาก string สุดท้ายคืนค่า palindrome เพียงอันเดียวถ้าพบว่ามี palindrome strings หลายอันที่มีความยาวสูงสุดอินพุตpqrเอาต์พุตp OR q OR rอินพุตppqqrrเอาต์พุตpqrrqp OR qprrpq OR rqppqr OR palindromic string อื่น

  15. หาองค์ประกอบที่หายไปจากอาร์เรย์ที่ซ้ำกันใน C++

    แนวคิดเมื่อได้รับอาร์เรย์สองอาร์เรย์ซึ่งเป็น duplicates ของกันและกันยกเว้นหนึ่งองค์ประกอบ หมายความว่าหนึ่งองค์ประกอบจากหนึ่งในอาร์เรย์หายไป งานของเราคือหาองค์ประกอบที่หายไปนั้นอินพุตarr1[] = {2, 5, 6, 8, 10} arr2[] = {5, 6, 8, 10}เอาต์พุต22 หายไปจากอาร์เรย์ที่สองอินพุตarr1[] = {3, 4, 5, 6} arr2[] =

  16. หาความต่างสูงสุดระหว่าง Nearest Left และ Right Smaller Elements ใน C++

    แนวคิดเมื่อได้รับอาร์เรย์ของจำนวนเต็ม งานของเราคือหาความต่างสัมบูรณ์สูงสุดระหว่าง nearest left smaller element และ right smaller element ของทุกองค์ประกอบในอาร์เรย์ ควรสังเกตว่า หากไม่มี smaller element ด้านขวาหรือซ้ายขององค์ประกอบใดๆ เราจะรับศูนย์เป็น smaller element ที่นี่ ตัวอย่างเช่น สำหรับ leftm

  17. หาระยะทางสูงสุดระหว่างเมืองใดๆ และสถานีใน C++

    แนวคิดเมื่อได้รับจำนวนเมือง N ที่นับจาก 0 ถึง N-1 และเมืองที่ตั้งสถานีอยู่ งานของเราคือหาระยะทางสูงสุดระหว่างเมืองใดๆ และสถานีที่ใกล้ที่สุดของมัน ควรสังเกตว่าเมืองที่มีสถานีสามารถให้มาในลำดับใดก็ได้อินพุตnumOfCities = 6, stations = [2, 4]เอาต์พุต2อินพุตnumOfCities = 6, stations = [4]เอาต์พุต4รูปต่อไ

  18. หาลำดับ Snake ที่ยาวที่สุดใน C++

    แนวคิดเมื่อได้รับกริดของตัวเลข ให้หาลำดับ Snake ที่ยาวที่สุดและแสดงออกมา สังเกตได้ว่าถ้ามีลำดับ Snake หลายลำดับที่มีความยาวสูงสุด ให้แสดงอันใดก็ได้หนึ่งอันจริงๆ แล้วลำดับ Snake ประกอบด้วยตัวเลขที่ติดกันในกริด เพื่อให้สำหรับตัวเลขแต่ละตัว ตัวเลขทางขวาหรือตัวเลขด้านล่างจะเป็น +1 หรือ -1 ของค่าของมัน ท

  19. หาค่า N สูงสุดที่ผลรวมกำลังสองของ N จำนวนธรรมชาติแรกไม่เกิน X ใน C++

    แนวคิดเมื่อได้รับจำนวนเต็ม X งานของเราคือหาค่า N สูงสุดที่ทำให้ผลรวมของกำลังสองของ N จำนวนธรรมชาติแรกไม่เกิน XอินพุตX = 7เอาต์พุต22 คือค่า N สูงสุดที่เป็นไปได้ เพราะถ้า N = 3 ผลรวมของอนุกรมจะเกิน X คือ 1^2 + 2^2 + 3^2 = 1 + 4 + 9 = 14อินพุตX = 27เอาต์พุต33 คือค่า N สูงสุดที่เป็นไปได้ เพราะถ้า N = 4

  20. หาจำนวนการดำเนินการสูงสุดเพื่อลด N ให้เหลือ 1 ใน C++

    แนวคิดเมื่อได้รับตัวเลขสองจำนวน P และ Q (P และ Q สามารถสูงสุดถึง 10^6) ซึ่งสร้างตัวเลข N = (P!/Q!) งานของเราคือลด N ให้เหลือ 1 โดยทำการดำเนินการมากที่สุดเท่าที่จะเป็นไปได้ จำไว้ว่าในแต่ละการดำเนินการ สามารถแทนที่ N ด้วย N/X ได้ถ้า N หารด้วย X ลงตัว หาจำนวนการดำเนินการสูงสุดที่เป็นไปได้อินพุตA = 7, B

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:197/301  20-คอมพิวเตอร์/Page Goto:1 191 192 193 194 195 196 197 198 199 200 201 202 203