หน้าแรก
หน้าแรก
สมมติว่าเรามีจำนวนอาร์เรย์เป็นจำนวนเต็ม เราต้องหาจำนวนผลรวมของช่วงที่อยู่ในช่วง [ล่าง, บน] ทั้งสองอย่างรวมกัน ผลรวมของช่วง S(i, j) ถูกกำหนดเป็นผลรวมขององค์ประกอบเป็น nums จากดัชนี i ถึงดัชนี j โดยที่ i ≤ j. ดังนั้นหากอินพุตเป็น [-3,6,-1] ต่ำกว่า =-2 และบน =2 ผลลัพธ์จะเป็น 2 เนื่องจากช่วงเป็น [0,2]
สมมติว่าเรามีซองจดหมายบางซอง ซองจดหมายเหล่านี้มีค่าความสูงและความกว้างเป็นคู่ เราสามารถใส่ซองหนึ่งเข้าไปในอีกซองหนึ่งได้หากความสูงและความกว้างของซองที่สองทั้งสองมีขนาดเล็กกว่าความสูงและความกว้างของซองแรก แล้วจำนวนซองสูงสุดที่เราใส่เข้าไปได้จะเป็นเท่าไหร่ ดังนั้น หากอินพุตเป็น [[5,5], [6,4], [6,8], [
สมมติว่าเรามีเมทริกซ์ 2 มิติ และจำนวนเต็ม k เราต้องหาผลรวมสูงสุดของสี่เหลี่ยมจัตุรัสในเมทริกซ์ โดยที่ผลรวมของมันจะต้องไม่เกิน k ดังนั้นหากอินพุตเป็นเช่น − 1 0 1 0 -3 2 และ k =3 ผลลัพธ์จะเป็น 3 เนื่องจากผลรวมของสี่เหลี่ยมที่ทำเครื่องหมายไว้คือ 3 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำห
สมมุติว่าเราต้องการสร้างโครงสร้างข้อมูลที่รองรับการดำเนินการบางอย่าง การดำเนินการเหล่านี้จะต้องสร้างไว้ล่วงหน้าในระยะเวลา O(1) ดังนั้นให้การดำเนินการเหล่านี้เป็นเหมือน - insert(x):ใส่ x เข้าไปในคอลเลกชัน remove(x):ลบ x ออกจากคอลเล็กชัน getRandom():สิ่งนี้จะค้นหารูปแบบองค์ประกอบสุ่มที่คอลเลกชันนั้น
สมมุติว่ามีกบกำลังข้ามแม่น้ำ แม่น้ำแบ่งออกเป็น x หน่วย และแต่ละหน่วยอาจมีหิน กบกระโดดบนหินได้ แต่ไม่สามารถกระโดดน้ำได้ เรามีรายชื่อตำแหน่งของหินที่เรียงจากน้อยไปมาก เราต้องตรวจสอบว่ากบสามารถข้ามแม่น้ำโดยการลงจอดบนหินก้อนสุดท้ายได้หรือไม่ ในขั้นต้น กบอยู่บนก้อนหินก้อนแรก และถือว่าการกระโดดครั้งแรกต้อ
สมมติว่าเรามีอาร์เรย์ของจำนวนเต็มบวกและหนึ่งค่า m เราสามารถแบ่งอาร์เรย์นี้เป็นอาร์เรย์ย่อยที่อยู่ติดกันจำนวน m เราต้องคิดค้นอัลกอริทึมเพื่อลดผลรวมที่ใหญ่ที่สุดในบรรดาอาร์เรย์ย่อย m เหล่านี้ ดังนั้นถ้าอาร์เรย์คือ [7,2,4,10,9] และ m =2 ผลรวมจะเท่ากับ 19 เนื่องจากเราสามารถสร้างอาร์เรย์ย่อยสองชุดได้ เช
สมมติว่าเรามีสองค่า n และ k เราต้องหาจำนวนเต็มที่น้อยที่สุดที่ kth เกี่ยวกับคำศัพท์ในช่วง 1 ถึง n ดังนั้นหากอินพุตเป็น n =14 และ k =3 เอาต์พุตจะเป็น 11 เนื่องจากลำดับจะเป็น [1, 10, 11, 12, 13, 14, 2, 3, 4, 5, 6, 7 , 8, 9] แล้วเลข k คือ 11 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดฟังก์ชัน
สมมติว่าเรามีอาร์เรย์ A โดยที่ N มีตัวเลขอยู่ ส่วนย่อยของอาร์เรย์นั้นเป็นลำดับของจำนวนเต็มใดๆ เช่น (K0, K1, K2, … Kn) เช่นนั้น 0 <=K0
สมมติว่ามี 1,000 ถัง อันหนึ่งเป็นพิษ อีกอันเต็มไปด้วยน้ำ พวกเขาทั้งหมดดูคล้ายกัน ถ้าหมูกินยาพิษมันจะตายภายใน 15 นาที จำนวนสุกรขั้นต่ำที่เราต้องหาถังพิษภายในหนึ่งชั่วโมงจะเป็นเท่าใด? ตอนนี้ให้พิจารณากรณีทั่วไปและกำหนดอัลกอริทึมสำหรับสิ่งนี้ กรณีทั่วไปคือ หากมี n ถังต่างกันและพิษของสุกรจะตายภายใน 1 น
สมมติว่าเรามีรายการคำ คำเหล่านี้มีความชัดเจน เราต้องคิดค้นอัลกอริธึมที่จะค้นหาคำที่ต่อกันทั้งหมดในรายการคำให้ คำที่ต่อกันเป็นสตริงที่ประกอบด้วยคำที่สั้นกว่าอย่างน้อยสองคำในอาร์เรย์ที่กำหนด ดังนั้นหากคำเช่น [cow, cows, cowsgoatcows, goat, goatcowsgoat, hippopotamuses, deer, deercowgoatcow] ผลลัพธ์จะ
สมมติว่าเรามีอินพุต n เราต้องหา palindrome ที่ใหญ่ที่สุดที่สามารถสร้างได้โดยใช้การคูณตัวเลขสอง n หลัก เนื่องจากตัวเลขมีขนาดใหญ่มาก เราจึงทำการม็อดได้โดยใช้ 1337 ดังนั้นหากอินพุตคือ 2 คำตอบจะเป็น 987, 987 =(99*91) mod 1337 =9009 mod 1337 =987 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - maxVal :=10
สมมติว่าเรามีรายการตัวเลข และเรามีหน้าต่างขนาด k หนึ่งหน้าต่าง เราต้องหารายการค่ามัธยฐานโดยใช้ลักษณะหน้าต่างบานเลื่อน ดังนั้นหากการกระจายเป็นเหมือนด้านล่าง − ตำแหน่งหน้าต่าง ค่ามัธยฐาน 1 3 -1 -3 5 3 6 8 1 1 3 -1 -3 5 3 6 8 -1 1 3 -1 -3 5 3 6 8 -1 1 3 -1 -3 5 3 6 8 3 1 3 -1 -3 5 3 6 8 5 1 3 -1
ให้เราพิจารณาเกี่ยวกับเกม Zuma สมมติว่าเรามีลูกบอลอยู่หนึ่งแถวบนโต๊ะ ลูกบอลเหล่านี้มีสีเป็นสีแดง(R), สีเหลือง(Y), สีน้ำเงิน(B), สีเขียว(G) และสีขาว(W) เรามีลูกบอลหลายลูกติดตัวไปด้วย แต่ละครั้ง เราอาจเลือกลูกบอลจากฝั่งเรา และสอดเข้าไปในแถว จากนั้น ถ้ามีกลุ่มลูก 3 ลูกขึ้นไปที่มีสีเดียวกันสัมผัสกัน ให
สมมติว่าเรามีอาร์เรย์ ในอาร์เรย์นี้ เราจะบอกว่าคู่หนึ่งคู่ (A[i] และ A[j]) เป็นคู่ย้อนกลับที่สำคัญหากเป็นไปตามเงื่อนไขต่อไปนี้ - ถ้าฉัน 2* nums[j] เราต้องหาจำนวนคู่ถอยที่สำคัญ ดังนั้นหากอินพุตเป็นเช่น [2,8,7,7,2] ผลลัพธ์จะเป็น 3 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ตอบ :=0 กำหนดฟังก์ชั
สมมุติว่าบริษัท A ต้องการเริ่มการเสนอขายหุ้นในเร็วๆ นี้ เพื่อขายหุ้นให้ B ให้ได้ราคาดี A ต้องการทำงานบางโครงการเพื่อเพิ่มทุนก่อน IPO A มีทรัพยากรจำกัด สามารถดำเนินการให้เสร็จสิ้นได้ไม่เกิน k โครงการก่อนการเสนอขายหุ้น คุณสามารถช่วย A โดยการออกแบบวิธีที่ดีที่สุดในการเพิ่มทุนทั้งหมดหลังจากเสร็จสิ้นโครง
สมมุติว่าเรามีเครื่องซักผ้าซุปเปอร์อยู่ติดกัน ในขั้นต้น เครื่องซักผ้าแต่ละเครื่องมีชุดหรือว่างเปล่า สำหรับการย้ายแต่ละครั้ง เราสามารถเลือกเครื่องซักผ้า m (1 ≤ m ≤ n) ใดๆ และส่งเสื้อผ้าหนึ่งชุดของเครื่องซักผ้าแต่ละเครื่องไปยังเครื่องซักผ้าเครื่องใดเครื่องหนึ่งที่อยู่ติดกันได้พร้อมกัน สมมติว่าเรามีอาร
=1) แล้วเอาออกและรับ k*k คะแนน ดังนั้นหากอินพุตเป็น − [1,3,2,2,2,4,4,3,1] ผลลัพธ์จะเป็น 21 ค้นหาคะแนนสูงสุดที่คุณจะได้รับ เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดฟังก์ชัน Solve() ซึ่งจะใช้กล่องอาร์เรย์ i, j, k, dp อาร์เรย์ 3 มิติหนึ่งชุด j แล้ว − คืน 0 ถ้า dp[i, j, k] ไม่เท่ากับ -1 แ
สมมติว่าเรามีจำนวนเต็มบวก n เราต้องหาจำนวนบันทึกการเข้างานที่เป็นไปได้ทั้งหมดที่มีความยาว n ซึ่งจะถือว่าคุ้มค่า เนื่องจากคำตอบอาจมีขนาดใหญ่มาก เราจะส่งคืนโดยใช้ mod 109 + 7 ในบันทึกการเข้าชั้นเรียนของนักเรียน สตริงสามารถประกอบด้วยอักขระสามตัวต่อไปนี้เท่านั้น - A หมายถึงไม่อยู่ L แปลว่าสาย P หมายถึ
สมมุติว่าเรามีตัวเลข n, เราต้องได้จำนวนที่ใกล้เคียงที่สุดคือพาลินโดรม ดังนั้นพาลินโดรมอาจน้อยกว่าหรือมากกว่าจำนวนที่ผลต่างสัมบูรณ์น้อยกว่า ดังนั้นหากตัวเลขเช่น 145 ผลลัพธ์จะเป็น 141 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - sn :=ขนาดของ n ถ้า sn เหมือนกับ 1 แล้ว − ลด n[0] ลง 1 และส่งคืนสตริง 1s
สมมติว่าเรามีจำนวนเต็มบวก n เราต้องหาจำนวนเต็มที่ไม่เป็นลบที่น้อยกว่าหรือเท่ากับ n ข้อจำกัดคือ การแทนค่าไบนารีจะไม่มีการแทนค่าที่ต่อเนื่องกัน ดังนั้นหากอินพุตคือ 7 คำตอบจะเป็น 5 เนื่องจากการแทนค่าไบนารีของ 5 คือ 101 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดฟังก์ชัน convert() ซึ่งจะใช้เวลา