หน้าแรก
หน้าแรก
สมมติว่าเรามีเหยือกสองใบที่มีความจุ x และ y ลิตร มีน้ำประปาให้เราใช้ได้อย่างไม่จำกัด ตอนนี้ เราต้องพิจารณาว่าสามารถวัด z ลิตรได้อย่างแม่นยำโดยใช้เหยือกทั้งสองนี้หรือไม่ หากวัดปริมาณน้ำได้ z ลิตร เราจะต้องมีน้ำ z ลิตรอยู่ภายในถังเดียวหรือทั้งสองถังในตอนท้าย เราสามารถดำเนินการบางอย่างเหล่านี้ได้ -
สมมติว่าเรามีชุดของจำนวนเต็มบวกที่แตกต่างกัน เราต้องหาเซตย่อยที่ใหญ่ที่สุดเพื่อให้ทุกคู่เช่น (Si, Sj) ขององค์ประกอบในเซตย่อยนี้เป็นไปตาม:Si mod Sj =0 หรือ Sj mod Si =0 ดังนั้นหากอินพุตเป็น [1,2,3] ผลลัพธ์ที่เป็นไปได้อาจเป็น [1,2] หรือ [1,3] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - สร้างอาร์
สมมติว่าเราต้องคำนวณ a^b mod 1337 โดยที่ a เป็นจำนวนเต็มบวกหนึ่งจำนวนและ b เป็นจำนวนเต็มบวกขนาดใหญ่มากที่กำหนดในรูปแบบของอาร์เรย์ ดังนั้นหาก a =2 และ b =[1,0] ผลลัพธ์จะเป็น 1024 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดวิธี powerMod() ซึ่งใช้ฐานและกำลัง m :=1337, ret :=1 ในขณะที่ก
สมมติว่าเรามีลำดับของตัวเลขที่เรียกว่าลำดับการแกว่ง ถ้าความแตกต่างระหว่างตัวเลขที่ต่อเนื่องกันสลับกันระหว่างค่าบวกและค่าลบอย่างเคร่งครัด ความแตกต่างแรกอาจเป็นบวกหรือลบ ลำดับที่มีองค์ประกอบน้อยกว่าสององค์ประกอบนั้นเป็นลำดับการกระดิกเล็กน้อย ตัวอย่างเช่น [1,7,4,9,2,5] เป็นลำดับการแกว่ง เพราะถ้าคุณเห็น
สมมติว่าเรามีรายการที่เชื่อมโยงเพียงอย่างเดียว เราต้องหาค่าของโหนดแบบสุ่มจากรายการที่เชื่อมโยง ที่นี่แต่ละโหนดต้องมีความน่าจะเป็นเท่ากันในการเลือก ตัวอย่างเช่น หากรายการคือ [1,2,3] ก็สามารถส่งคืนโหนดสุ่มในช่วง 1, 2 และ 3 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ในเมธอด getRandom() ให้ทำดังต่
สมมติว่าเรามีรายการของจำนวนเต็มที่เรียงลำดับตั้งแต่ 1 ถึง n ที่เริ่มจากซ้ายไปสิ้นสุดที่ด้านขวาเราต้องลบตัวเลขแรกและหมายเลขอื่น ๆ ออกทั้งหมดจนกว่าจะถึงจุดสิ้นสุดของรายการ เราจะทำซ้ำขั้นตอนก่อนหน้านี้อีกครั้ง แต่คราวนี้จากขวาไปซ้าย ลบตัวเลขที่ถูกต้องที่สุดและตัวเลขอื่นๆ ทั้งหมดออกจากตัวเลขที่เหลือ เรา
สมมติว่าเรามีรายการจำนวนเต็มที่แสดงข้อมูล เราต้องตรวจสอบว่าเข้ารหัส UTF-8 ถูกต้องหรือไม่ อักขระ UTF-8 หนึ่งตัวสามารถมีความยาวได้ 1 ถึง 4 ไบต์ มีคุณสมบัติบางอย่าง - สำหรับอักขระ 1 ไบต์ บิตแรกคือ 0 ตามด้วยรหัสยูนิโค้ด สำหรับอักขระ n-bytes n-bit แรกคือ 1 ทั้งหมด n+1 บิตคือ 0 ตามด้วย n-1 ไบต์โดยที
สมมติว่าเราได้ให้อาร์เรย์ของจำนวนเต็ม A และให้ n คือความยาวของอาร์เรย์ A ตอนนี้ถือว่า Bk เป็นอาร์เรย์ที่ได้รับจากการหมุนอาร์เรย์ A ตำแหน่ง k ตามเข็มนาฬิกา ที่นี่การหมุนสามารถกำหนดเป็น − F(k) =0 * Bk[0] + 1 * Bk[1] + ... + (n-1) * Bk[n-1]. ตอนนี้หาค่าสูงสุดของ F(0), F(1), ..., F(n-1) ดังนั้นหา
สมมติว่าเรามีจำนวนเต็มบวก n และเราสามารถดำเนินการได้ดังนี้ - ถ้า n เป็นเลขคู่ ให้แทนที่ n ด้วย n/2 หาก n เป็นเลขคี่ คุณสามารถแทนที่ n ด้วย n + 1 หรือ n - 1 เราต้องหาจำนวนการทดแทนขั้นต่ำที่จำเป็นสำหรับ n ที่จะกลายเป็น 1 หรือไม่ ดังนั้นหากตัวเลขคือ 7 คำตอบจะเป็น 4 เช่น 7 → 8 → 4 → 2 → 1 หรือ
สมมติว่าเรามีอาร์เรย์ของจำนวนเต็มที่มีความเป็นไปได้ที่ซ้ำกัน เราต้องสุ่มเลือกดัชนีของหมายเลขเป้าหมายที่กำหนด เราสามารถสรุปได้ว่าหมายเลขเป้าหมายที่กำหนดต้องมีอยู่ในอาร์เรย์ ดังนั้นหากอาร์เรย์เป็นเหมือน [1,2,3,3,3] ให้เลือก (3) อาจส่งคืน 2, 3, 4 แบบสุ่ม เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
สมมติว่าเรามีอาร์เรย์ตัวเลขที่ไม่ว่าง a0, a1, a2, … , an-1 โดยที่ 0 ≤ ai <231 เราต้องหาผลลัพธ์สูงสุดของ ai XOR aj โดยที่ 0 ≤ i, j
สมมติว่าเรามีรายการที่เชื่อมโยงที่ไม่ว่างเปล่าสองรายการซึ่งแสดงถึงจำนวนเต็มที่ไม่ติดลบสองจำนวน ในที่นี้ หลักที่สำคัญที่สุดมาก่อน และแต่ละโหนดมีตัวเลขหลักเดียว เราต้องบวกตัวเลขทั้งสองแล้วส่งคืนเป็นรายการที่เชื่อมโยง ดังนั้นหากรายการคือ [7, 2, 4, 3] + [5, 6, 4] ผลลัพธ์จะเป็น [7, 8, 0, 7] เพื่อแก้ปัญห
สมมติว่าบน CPU แบบเธรดเดียว เราเรียกใช้ฟังก์ชันบางอย่าง ตอนนี้แต่ละฟังก์ชันมี id ที่ไม่ซ้ำกันระหว่าง 0 ถึง N-1 เราจะจัดเก็บบันทึกในลำดับการประทับเวลาที่อธิบายเมื่อมีการป้อนหรือออกจากฟังก์ชัน แต่ละบันทึกจะเป็นสตริงที่เขียนรูปแบบนี้:{function_id}:{start | end}:{timestamp} ตัวอย่างเช่น หากสตริงเป็นเหม
สมมติว่ามีร้านค้า มีสินค้าบางอย่างที่จะขาย แต่ละรายการมีราคาบางส่วน อย่างไรก็ตาม มีข้อเสนอพิเศษบางอย่าง และข้อเสนอพิเศษประกอบด้วยสินค้าประเภทต่าง ๆ หนึ่งชนิดขึ้นไปที่มีราคาลด เราจึงมีรายการราคา ชุดข้อเสนอพิเศษ และจำนวนที่เราต้องซื้อสำหรับแต่ละรายการ งานคือการหาราคาต่ำสุดที่เราต้องจ่ายสำหรับสินค้าบาง
สมมุติว่าในโลกของ Dota2 มีสองฝ่าย - The Radiant และ Dire วุฒิสภา Dota2 ประกอบด้วยวุฒิสมาชิกที่มาจากสองฝ่าย ตอนนี้วุฒิสภาต้องการสร้างทางเลือกใหม่ในเกม Dota2 การลงคะแนนสำหรับการเปลี่ยนแปลงนี้อาจเป็นขั้นตอนแบบรอบ ในแต่ละรอบ สมาชิกวุฒิสภาแต่ละคนสามารถใช้สิทธิได้หนึ่งสิทธิ - แบนสิทธิของสมาชิกวุฒิสภาคน
สมมติว่าเรามีดาวเคราะห์น้อยอาร์เรย์เป็นจำนวนเต็มแทนดาวเคราะห์น้อยในแถว สำหรับดาวเคราะห์น้อยแต่ละดวง ค่าสัมบูรณ์แสดงถึงขนาดของมัน และเครื่องหมายแสดงถึงทิศทางที่สามารถเป็นบวกหรือลบสำหรับด้านขวาและด้านซ้ายตามลำดับ ดาวเคราะห์น้อยแต่ละดวงเคลื่อนที่ด้วยความเร็วเท่ากัน เราต้องหาสถานะของดาวเคราะห์น้อยหลังจ
สมมติว่าเรามีจำนวนเต็มอาร์เรย์ เราสามารถทำการดำเนินการบางอย่างกับอาร์เรย์ได้ ที่นี่ในแต่ละการดำเนินการ เราเลือก nums[i] และลบออกเพื่อรับ nums[i] จำนวนคะแนน เราต้องลบทุกองค์ประกอบที่เท่ากับ nums[i] - 1 หรือ nums[i] + 1 ในตอนแรกจุดคือ 0 เราต้องหาจำนวนคะแนนสูงสุดที่เราจะได้รับจากการดำเนินการดังกล่าว ดั
สมมุติว่าเรามีรูปร่างสองแบบ คือ Domino และ Tromino สามารถหมุนได้ดังนี้ - ในการปูกระเบื้อง ทุกตารางต้องปูด้วยกระเบื้อง การเรียงต่อกันสองแบบในที่นี้จะต่างกันก็ต่อเมื่อมีเซลล์ที่อยู่ติดกัน 4 ทิศทาง 2 เซลล์บนกระดาน โดยที่การเรียงต่อกันอย่างใดอย่างหนึ่งมีสี่เหลี่ยมจัตุรัสทั้งสองอันถูกไทล์ครอบครอง ให้
สมมติว่าเรามี S และ T สองสตริงที่ประกอบด้วยตัวอักษรพิมพ์เล็ก ใน S ไม่มีตัวอักษรเกิดขึ้นมากกว่าหนึ่งครั้ง S ถูกจัดเรียงตามลำดับที่กำหนดเองก่อนหน้านี้ เราต้องเปลี่ยนอักขระของ T เพื่อให้ตรงกับลำดับที่ S ถูกจัดเรียง โดยเฉพาะอย่างยิ่ง ถ้า x เกิดขึ้นก่อน y ใน S ดังนั้น x จะเกิดขึ้นก่อน y ในสตริงที่ส่งคืน
สมมติว่าเรามีอาร์เรย์ A ของจำนวนเต็มบวก และจำนวนเต็มบวกสองจำนวน L และ R ก็จะได้รับเช่นกัน เราต้องหาจำนวนของอาร์เรย์ย่อย (ต่อเนื่องกัน ไม่ว่าง) เพื่อให้ค่าขององค์ประกอบอาร์เรย์สูงสุดในอาร์เรย์ย่อยนั้นมีค่าอย่างน้อย L และมากที่สุด R ดังนั้นถ้า A =[2,1,4,3] และ L =2 และ R =3 จากนั้นเอาต์พุตจะเป็น 3 เนื