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

    สมมติว่าเรามีสตริง เราสามารถ เลื่อน ตัวอักษรแต่ละตัวไปยังตัวอักษรถัดไปได้ เช่น abc สามารถเปลี่ยนเป็น bcd ได้ เราสามารถทำซ้ำการดำเนินการนี้ซึ่งจะสร้างลำดับ: abc → bcd → ... → xyz หากเรามีรายการสตริงที่ไม่ว่างเปล่าและประกอบด้วยตัวอักษรพิมพ์เล็กเท่านั้น เราต้องจัดกลุ่มสตริงทั้งหมดที่อยู่ในลำดับการเลื่อ

  2. นับ Subtree ที่มีค่าเหมือนกันทั้งหมดใน C++

    สมมติว่าเรามีต้นไม้แบบทวิภาค (binary tree) เราต้องนับจำนวน uni-value subtrees ซึ่งหมายถึง subtree ที่ทุกโหนดมีค่าเท่ากันทั้งหมดตัวอย่างเช่น ถ้าข้อมูลนำเข้าเป็น root = [5,1,5,5,5,null,5]ผลลัพธ์จะเป็น 4วิธีแก้ปัญหา สร้างฟังก์ชัน solve() ที่รับพารามิเตอร์เป็นโหนด ถ้าโหนดว่าง ให้คืนค่า true เรียก solve(

  3. Flatten 2D Vector ใน C++

    สมมติว่ามี 2D vector เราต้องออกแบบและ implement iterator เพื่อ flatten 2d vector นั้น จะมีเมธอดต่างๆ ดังนี้ − next() − จะคืนค่าสมาชิกถัดไปของสมาชิกปัจจุบันhasNext() − จะตรวจสอบว่ามีสมาชิกถัดไปหรือไม่ เช่น ถ้าอินพุทเป็น [[1,2],[3],[4]] แล้วถ้าเราเรียกฟังก์ชันดังนี้ − iterator.next();iterator.next();i

  4. Meeting Rooms II ใน C++

    สมมติว่ามีอาร์เรย์ของช่วงเวลาการประชุม มีเวลาเริ่มและสิ้นสุด [[s1,e1],[s2,e2],...] และแต่ละคู่สอดคล้องกับกฎ (si < ei) เราต้องหาจำนวนห้องประชุมขั้นต่ำที่จำเป็น เช่น ถ้าอินพุทเป็น [[0, 30], [5, 10], [15, 20]] ผลลัพธ์จะเป็น 2 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − กำหนด priority queue pqเรียงลำดับอ

  5. Factor Combinations ใน C++

    สมมติว่ามีตัวเลข ตัวเลขสามารถมองว่าเป็นผลคูณของตัวประกอบได้ เช่น 8 = 2 x 2 x 2; = 2 x 4 เราต้องทำฟังก์ชันที่รับจำนวนเต็ม n และคืนค่าการรวมตัวประกอบที่เป็นไปได้ทั้งหมด เช่น ถ้าอินพุทเป็น 12 ผลลัพธ์จะเป็น [[2, 6], [2, 2, 3], [3, 4]] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − กำหนดฟังก์ชัน solve() รับ

  6. Verify Preorder Sequence in Binary Search Tree ใน C++

    สมมติว่ามีลำดับตัวเลข เราต้องตรวจสอบว่ามันเป็น preorder traversal sequence ที่ถูกต้องของ binary search tree หรือไม่ เราสามารถสมมติได้ว่าแต่ละตัวเลขในลำดับไม่ซ้ำกัน พิจารณา binary search tree ต่อไปนี้ − เช่น ถ้าอินพุทเป็น [5,2,1,3,6] ผลลัพธ์จะเป็น true เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − itr

  7. 3Sum Smaller ใน C++

    สมมติว่ามีอาร์เรย์ของจำนวนเต็ม n ตัวชื่อ nums และมี target เราต้องหาจำนวน index triplets (i, j, k) ที่ i, j, k อยู่ในช่วง 0 ถึง n-1 และทำให้ nums[i] + nums[j] + nums[k] < target เช่น ถ้าอินพุทเป็น nums = [-2,0,1,3], และ target = 2 ผลลัพธ์จะเป็น 2 เนื่องจากมีสอง triplets ที่ผลรวมน้อยกว่า 2: [-2,0,1]

  8. Graph Valid Tree ใน C++

    สมมติว่ามี n โหนดติดป้าย 0 ถึง n-1 และรายการขอบแบบไม่มีทิศทาง [u,v] เราต้องกำหนดฟังก์ชันตรวจสอบว่าขอบเหล่านี้สร้าง valid tree ได้หรือไม่ เช่น ถ้าอินพุทเป็น n = 5, และ edges = [[0,1], [0,2], [0,3], [1,4]] ผลลัพธ์จะเป็น true เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − กำหนดฟังก์ชัน dfs() รับ node, par,

  9. Palindrome Permutation II ใน C++

    สมมติว่ามีสตริง s เราต้องหาการเรียงสับเปลี่ยนแบบแพลินโดรมทั้งหมดของมัน ไม่มีการซ้ำ ถ้าไม่มีการเรียงสับเปลี่ยนแบบแพลินโดรม ให้คืนค่าสตริงว่าง เช่น ถ้าอินพุทเป็น aabb ผลลัพธ์จะเป็น [abba, baab] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − กำหนดอาร์เรย์ retกำหนดฟังก์ชัน solve() รับ s, sz, unordered map m

  10. Encode and Decode Strings ใน C++

    สมมติว่ามีรายการสตริง เราต้องออกแบบอัลกอริทึมที่เข้ารหัสรายการสตริงเป็นสตริงเดียว และทำ decoder ที่ถอดรหัสกลับเป็นรายการสตริงต้นฉบับ สมมติว่า encoder และ decoder ติดตั้งบนเครื่องเหล่านี้ และมีฟังก์ชันสองตัวดังนี้ − Machine 1 (sender) มีฟังก์ชัน string encode(vector<string> strs) {    

  11. Find the Celebrity ใน C++

    สมมติว่ามี n คน (ติดป้าย 0 ถึง n-1) และในกลุ่มอาจมีคนหนึ่งเป็น celebrity เราสามารถบอกได้ว่าคน x เป็น celebrity เมื่อคนอื่น n-1 คนรู้จัก x แต่ x ไม่รู้จักใครเลย ที่นี่เราต้องหาว่าใครคือ celebrity หรือยืนยันว่าไม่มี เราสามารถถามคำถามเดียวให้คน A ว่า Hi, A. Do you know B? เพื่อรับข้อมูลว่า A รู้จัก B ห

  12. Wiggle Sort ใน C++

    สมมติว่ามีอาร์เรย์ที่ไม่ได้เรียงลำดับชื่อ nums เราต้องเรียงใหม่แบบ in-place ให้ nums[0] = nums[2] <= nums[3]... และต่อไป เช่น ถ้าอินพุทเป็น nums = [3,5,2,1,6,4] ผลลัพธ์จะเป็น [3,5,1,6,2,4] อาจมีคำตอบอื่นได้ เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − n := ขนาดของ numsลูป i := 0 ถึง n - 2 เพิ่ม i := i

  13. Zigzag Iterator ใน C++

    สมมติว่ามีอาร์เรย์ 1 มิติสองอัน เราต้อง implement iterator ที่จะคืนค่าสมาชิกสลับกัน มีเมธอดสองตัว − next() − เพื่อดึงสมาชิกถัดไปhasNext() − เพื่อตรวจสอบว่ามีสมาชิกถัดไปหรือไม่ เช่น ถ้าอินพุทเป็น v1 = [1,2] v2 = [3,4,5,6] ผลลัพธ์จะเป็น [1,3,2,4,5,6] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − กำหนดคิว

  14. Inorder Successor in BST ใน C++

    สมมติว่ามี binary search tree และโหนดในมัน เราต้องค้นหา in-order successor ของโหนดนั้นใน BST ตามที่เรารู้ว่า successor ของโหนด p คือโหนดที่มีคีย์น้อยที่สุดที่มากกว่า p.val เช่น ถ้าอินพุทเป็น root = [2,1,3], p = 1 ผลลัพธ์จะเป็น 2 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − กำหนดเมธอดเรียกซ้ำ inorderS

  15. Walls and Gates ใน C++

    สมมติว่ามีกริด 2 มิติขนาด m x n ที่เริ่มต้นด้วยค่าที่เป็นไปได้สามค่า -1 สำหรับกำแพงหรืออุปสรรค0 สำหรับประตูINF หมายถึงอนันต์ คือห้องว่าง ที่นี่ 2^31 - 1 = 2147483647 คือ INF เนื่องจากเราสมมติได้ว่าระยะทางไปประตูน้อยกว่า 2147483647 เติมแต่ละห้องว่างด้วยระยะทางไปประตูที่ใกล้ที่สุด หากไปไม่ถึงประตู ให้

  16. Flip Game II ใน C++

    สมมติว่ามีผู้เล่นสองคนเล่น flip game นี่คือสตริงที่มีแค่สองตัวอักษร: + และ - player1 และ player2 สลับกันพลิก ++ ติดกันสองตัวเป็น -- เกมจบเมื่อผู้เล่นคนหนึ่งไม่สามารถเล่นได้อีก และอีกคนจะเป็นผู้ชนะ เราต้องกำหนดฟังก์ชันตรวจสอบว่าผู้เล่นเริ่มต้นสามารถรับประกันชัยชนะได้หรือไม่ เช่น ถ้าอินพุทเป็น s = +++

  17. Binary Tree Longest Consecutive Sequence ใน C++

    สมมติว่ามี binary tree เราต้องตรวจสอบว่าสามารถหาความยาวของ longest consecutive sequence path ได้หรือไม่ ถ้า path หมายถึงลำดับของโหนดจากโหนดเริ่มต้นไปยังโหนดใดๆ ในต้นไม้ตามการเชื่อมต่อ parent-child longest consecutive path ต้องเป็น parent ไป child แต่ไม่ใช่ย้อนกลับ เช่น ถ้าอินพุทเป็นแบบ ผลลัพธ์จะเป็

  18. Sparse Matrix Multiplication ใน C++

    สมมติว่ามีเมทริกซ์สองอัน A และ B เราต้องหาผลลัพธ์ของ AB เราสามารถสมมติได้ว่าจำนวนคอลัมน์ของ A เท่ากับจำนวนแถวของ B เช่น ถ้าอินพุทเป็น [[1,0,0],[-1,0,3]] [[7,0,0],[0,0,0],[0,0,1]] 100-103 700000001 ผลลัพธ์จะเป็น [[7,0,0],[-7,0,3]] 700-703 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − r1 := ขนาดของ A, r

  19. Binary Tree Vertical Order Traversal ใน C++

    สมมติว่ามี binary tree เราต้องหา vertical order traversal ของค่าของโหนด ถ้ามีสองโหนดอยู่ในแถวและคอลัมน์เดียวกัน ลำดับควรเป็นจากซ้ายไปขวา เช่น ถ้าอินพุทเป็นแบบ ผลลัพธ์จะเป็น [[9],[3,15],[20],[7]] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − กำหนดแมป mกำหนดฟังก์ชัน solve() รับ node, x เริ่มต้นที่ 0ถ้า

  20. Generalized Abbreviation ใน C++

    สมมติว่ามีคำ เราต้องกำหนดฟังก์ชันที่สามารถสร้าง generalized abbreviations ของคำนั้นได้ เช่น ถ้าอินพุทเป็น word ผลลัพธ์จะเป็น [word, 1ord, w1rd, wo1d, wor1, 2rd, w2d, wo2, 1o1d, 1or1, w1r1, 1o2, 2r1, 3d, w3, 4] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้ − กำหนดอาร์เรย์ retกำหนดฟังก์ชัน solve() รับ s, i

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