หน้าแรก
หน้าแรก
สมมติว่าเรามีสตริงพาลินโดรม palindrome เราต้องแทนที่อักขระตัวเดียวด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กใด ๆ เพื่อให้สตริงกลายเป็นสตริงที่เล็กที่สุดเกี่ยวกับศัพท์เฉพาะที่ไม่ใช่ palindrome หลังจากทำอย่างนั้นแล้ว เราก็ต้องหาเส้นสุดท้าย หากไม่มีวิธีการดังกล่าว ให้ส่งคืนสตริงว่าง ดังนั้นหากอินพุตเป็นเหมือน
สมมติว่าเรามีเมทริกซ์ N x M เราต้องเรียงแนวทแยงมุมโดยเพิ่มลำดับจากบนซ้ายไปขวาล่าง ดังนั้นหากเมทริกซ์เป็นเหมือน − 3 3 1 1 2 2 1 2 1 1 1 2 เมทริกซ์ผลลัพธ์จะเป็น − 1 1 1 1 1 2 2 2 1 2 3 3 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดวิธีการที่เรียกว่า Solve() ซึ่งจะใช้ si, sj และ ma
สมมติว่าเรามีร้านอาหารมากมายที่ร้านอาหาร[i]มี [idi, Ratingi, เป็นมิตรกับมังสวิรัติ, pricei, Distancei] เราต้องกรองร้านอาหารโดยใช้สามตัวกรอง ตัวกรองที่เป็นมิตรกับวีแก้นจะเป็นจริง (หมายความว่าเราควรรวมเฉพาะร้านอาหารที่ตั้งค่าให้เหมาะกับวีแก้นเป็นจริงเท่านั้น) หรือเท็จ (หมายความว่าเราสามารถรวมร้านอา
สมมติว่ามี n เมืองที่มีตัวเลขตั้งแต่ 0 ถึง n-1 หากเรามีขอบอาร์เรย์โดยที่ edge[i] =[fromi, toi, weighti] แทนขอบแบบสองทิศทางและแบบถ่วงน้ำหนักระหว่างเมือง fromi และ toi และกำหนดเกณฑ์ระยะทางจำนวนเต็ม เราต้องหาเมืองที่มีจำนวนเมืองน้อยที่สุดที่สามารถเข้าถึงได้ผ่านเส้นทางใดเส้นทางหนึ่งและมีระยะทางที่ไกลที่
สมมติว่าเรามีอาร์เรย์ arr เราสามารถเลือกชุดของจำนวนเต็มและลบการเกิดของจำนวนเต็มเหล่านี้ทั้งหมดในอาร์เรย์ เราต้องหาขนาดต่ำสุดของชุดเพื่อลบจำนวนเต็มของอาร์เรย์อย่างน้อยครึ่งหนึ่ง ตัวอย่างเช่น ถ้า arr =[3,3,3,3,5,5,5,2,2,7] ผลลัพธ์จะเป็น 2 เนื่องจากถ้าเราเลือก {3,7} จะทำให้ อาร์เรย์ใหม่ [5,5,5,2,2] ซึ่
สมมติว่าเรามีอาร์เรย์ของจำนวนเต็ม arr และจำนวนเต็มสองจำนวน k และขีดจำกัด เราต้องหาจำนวนอาร์เรย์ย่อยของขนาด k และค่าเฉลี่ยที่มากกว่าหรือเท่ากับเกณฑ์ ดังนั้นหากอินพุตมีลักษณะดังนี้:[2,2,2,2,5,5,5,8] และ k =3 และขีดจำกัด =4 ผลลัพธ์จะเป็น 3 เนื่องจากอาร์เรย์ย่อย [2,5,5] , [5,5,5] และ [5,5,8] มีค่าเฉลี่ย
สมมติว่าเรามีตัวเลขสองตัว ชั่วโมงและนาที เราต้องหามุมที่เล็กกว่า (ในหน่วยความเท่าเทียม) ที่เกิดขึ้นระหว่างเข็มชั่วโมงกับเข็มนาที ดังนั้นหากอินพุตเป็น hour =12 และ min :=30 ผลลัพธ์จะเป็น 165° เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ถ้า h =12 ให้ตั้งค่า h :=0 ถ้า m =60 ให้ตั้งค่า m :=0
สมมติว่าเรามีสตริงที่มีขนาดเท่ากัน s และ t ในขั้นตอนเดียว เราสามารถเลือกอักขระใดก็ได้ของ t และแทนที่ด้วยอักขระอื่น เราต้องหาจำนวนขั้นตอนขั้นต่ำที่จำเป็นในการสร้างแอนนาแกรมของ s หมายเหตุ:แอนนาแกรมของสตริงคือสตริงที่มีอักขระเดียวกันกับการเรียงลำดับที่แตกต่างกัน (หรือเหมือนกัน) ดังนั้น หากอินพุตเป็นเช่
สมมติว่าเรามีการใช้งานคลาสที่เรียกว่า ProductOfNumbers ที่รองรับสองวิธี - add(int num):เพิ่มตัวเลขที่ด้านหลังรายการตัวเลขปัจจุบัน getProduct(int k):ส่งคืนผลิตภัณฑ์ของตัวเลข k สุดท้ายในรายการปัจจุบัน เราสามารถสรุปได้ว่ารายการปัจจุบันมีตัวเลขอย่างน้อย k เสมอ ตัวอย่างเช่น หากอินพุตเป็น − add(3
สมมติว่าเรามีอาร์เรย์ของเหตุการณ์ที่ events[i] =[startDayi, endDayi] ที่นี่ทุกงานที่ฉันเริ่มต้นที่ startDayi และสิ้นสุดที่ endDayi เราสามารถเข้าร่วมกิจกรรม I ได้ทุกวัน d โดยที่ d อยู่ในช่วง startTimei และ endTimei (รวมทั้งสองอย่าง) เราต้องจำไว้ว่าเราสามารถเข้าร่วมได้ครั้งละหนึ่งงานเท่านั้น ดังนั้นจง
สมมติว่ามีการขายในซูเปอร์มาร์เก็ต ลูกค้าทุกคนจะมีส่วนลด พิจารณาว่ามีผลิตภัณฑ์บางอย่างในซูเปอร์มาร์เก็ตที่รหัสของผลิตภัณฑ์ที่ i คือ products[i] และราคาต่อหน่วยของผลิตภัณฑ์นี้คือราคา[i] ที่นี่ระบบจะนับจำนวนลูกค้า และเมื่อลูกค้าคนที่ n มาถึง เขา/เธอจะมีส่วนลดในบิล จากนั้นระบบจะเริ่มนับลูกค้าอีกครั้ง ลู
สมมติว่าเราให้สตริง s ที่ประกอบด้วยอักขระ a, b และ c เท่านั้น เราต้องคืนค่าจำนวนสตริงย่อยที่มีอักขระ a, b และ c ทั้งหมดเกิดขึ้นอย่างน้อยหนึ่งครั้ง ตัวอย่างเช่น หากสตริงคือ abcabc ผลลัพธ์จะเป็น 10 เนื่องจากสตริงย่อยที่มีอักขระ a, b และ c เกิดขึ้นอย่างน้อยหนึ่งตัว ได้แก่ abc, abca, abcab, “abcabc”, “b
สมมติว่าเรามี n binary tree nodes ที่มีหมายเลขตั้งแต่ 0 ถึง n - 1 โดยที่ node I มีลูกสองคน leftChild[i] และ rightChild[i] เราต้องบอกว่าจริงก็ต่อเมื่อ โหนดที่กำหนดทั้งหมดสร้างไบนารีทรีที่ถูกต้องเพียงหนึ่งเดียว เมื่อโหนด i ไม่มีลูกด้านซ้ายแล้ว leftChild[i] จะเท่ากับ -1 เช่นเดียวกับลูกที่ถูกต้อง เราต้อ
สมมุติว่าเรามีเลขจำนวนเต็ม เราต้องหาจำนวนเต็มที่ใกล้เคียงที่สุดสองตัวที่ผลต่างสัมบูรณ์ซึ่งผลคูณเท่ากับ num + 1 หรือ num + 2 เราต้องหาจำนวนเต็มสองตัวในลำดับใดก็ได้ ดังนั้นหากอินพุตคือ 8 ผลลัพธ์จะเป็น [3, 3] สำหรับ num + 1 มันจะเป็น 9 ตัวหารที่ใกล้เคียงที่สุดคือ 3 และ 3 สำหรับ num + 2 =10 ตัวหารที่ใกล
สมมติว่าเรามีรูทแบบไบนารีและรายการที่เชื่อมโยงโดยมีส่วนหัวเป็นโหนดแรก เราต้องคืนค่า True หากองค์ประกอบทั้งหมดในรายการที่เชื่อมโยงโดยเริ่มจากส่วนหัวสอดคล้องกับเส้นทางลงที่เชื่อมต่อในไบนารีทรีมิฉะนั้นจะเป็นเท็จ ดังนั้นถ้าต้นไม้เป็นเหมือน − และรายการที่เชื่อมโยงคือ [1,4,2,6] ดังนั้นผลลัพธ์จะเป็นจริง
สมมติว่าเรามีรากต้นไม้ไบนารี เส้นทางซิกแซกสำหรับต้นไม้ไบนารีถูกกำหนดดังนี้ - เลือกโหนดใดก็ได้ในไบนารีทรีและทิศทาง (ขวาหรือซ้าย) หากทิศทางปัจจุบันอยู่ทางขวา ให้เคลื่อนที่ไปทางชายด์ด้านขวาของโหนดปัจจุบัน ไม่เช่นนั้นให้เคลื่อนไปทางชายด์ด้านซ้าย แล้วเปลี่ยนทิศทางจากขวาไปซ้ายหรือกลับกัน ทำซ้ำ
สมมติว่าเรามีห้องที่มีหลอดไฟ n ดวง ซึ่งจะมีหมายเลขตั้งแต่ 1 ถึง n เรียงกันเป็นแถวจากซ้ายไปขวา ในขั้นต้น หลอดไฟทั้งหมดจะถูกปิด ในขณะนี้ k (สำหรับ k ในช่วง 0 ถึง n - 1) เราเปิดหลอดไฟ[k] หลอดไฟเปลี่ยนสีเป็นสีน้ำเงินก็ต่อเมื่อเปิดอยู่และหลอดไฟก่อนหน้าทั้งหมด (ทางด้านซ้าย) ก็เปิดอยู่ด้วย เราต้องหาจำนวนช่
สมมติว่าเรามีบริษัทที่มีพนักงาน n คนซึ่งมี ID เฉพาะสำหรับพนักงานแต่ละคน รหัสเหล่านี้มีตั้งแต่ 0 ถึง n - 1 หัวหน้าบริษัทมีคือรหัสที่มีรหัสประจำตัว พนักงานแต่ละคนมีผู้จัดการโดยตรงหนึ่งคนในอาร์เรย์ผู้จัดการโดยที่ manager[i] เป็นผู้จัดการโดยตรงของพนักงานคนที่ i ผู้จัดการ[headID] =-1 นอกจากนี้ยังรับประกั
สมมติว่าเรามีต้นไม้ไบนารีสองต้นที่เป็นต้นฉบับและลอกแบบแล้ว และได้รับการอ้างอิงไปยังเป้าหมายของโหนดในทรีดั้งเดิม ต้นไม้โคลนเป็นสำเนาของต้นไม้ดั้งเดิม เราต้องหาการอ้างอิงไปยังโหนดเดียวกันในทรีที่ลอกแบบมา ดังนั้นหากต้นไม้อยู่ด้านล่างและเป้าหมายคือ 3 ผลลัพธ์จะเป็น 3 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอ
สมมติว่าเราต้องการออกแบบสแต็กที่รองรับการทำงานต่อไปนี้ CustomStack(int maxSize) สิ่งนี้เริ่มต้นวัตถุด้วย maxSize ซึ่งเป็นจำนวนสูงสุดขององค์ประกอบในสแต็ก หรือไม่ทำอะไรเลยหากสแต็กถึงขนาดสูงสุด ถือเป็นโมฆะ push(int x) สิ่งนี้จะแทรก x ไปที่ด้านบนของสแต็กหากสแต็กยังไม่ถึงขนาดสูงสุด int pop() การ