หน้าแรก
หน้าแรก
สมมติว่าเราต้องการพัฒนาโครงสร้างข้อมูลที่สามารถสร้างรายการจำนวนเต็มได้ และมีฟังก์ชันในการค้นหาผลรวมขององค์ประกอบตั้งแต่ดัชนี i ถึงดัชนี j-1 เมื่อใดก็ตามที่เราต้องการอย่างมีประสิทธิภาพ มีสองหน้าที่ ตัวสร้างที่สร้างอินสแตนซ์ใหม่ด้วยอาร์เรย์จำนวนเต็ม get_sum(i, j) คืนค่าผลรวมของจำนวนเต็มขององค์ประกอบอ
สมมติว่าเราต้องการพัฒนาโครงสร้างข้อมูลที่สามารถสร้างขึ้นด้วยเวลาหมดอายุ และสนับสนุนฟังก์ชันที่ใช้ ID ผู้ใช้และการประทับเวลา การดำเนินการนี้จะตรวจสอบว่าผู้ใช้ที่มี user_id ที่ระบุ ณ เวลาที่กำหนด คำขอล้มเหลวหรือไม่ จะล้มเหลวก็ต่อเมื่อผู้ใช้มีคำขอที่ประสบความสำเร็จน้อยกว่าเวลาหมดอายุที่กำหนดที่ผ่านมา
สมมติว่าเรามีสตริงไบนารี s ตอนนี้ให้เราพิจารณาการดำเนินการที่เราเลือกบิตและพลิกค่าจาก 0 เป็น 1 หรือกลับกัน เราต้องหาจำนวนการดำเนินการขั้นต่ำที่จำเป็นเพื่อให้ได้สตริงที่ไม่มีบิตต่อเนื่องกันสามบิต ดังนั้น หากอินพุตเป็น s =10011100 ผลลัพธ์จะเป็น 1 เนื่องจากเราสามารถพลิก 1 ถึง 0 บิตที่ดัชนี 4 เพื่อทำให
สมมติว่าเรามีสตริงภาษาอังกฤษสองสตริง s และ t อาจเป็นตัวพิมพ์เล็กและ/หรือตัวพิมพ์ใหญ่ เราต้องเช็คกันก่อนว่าตัวไหนหมุนเวียนกันหรือไม่ ดังนั้น หากอินพุตเป็น s =koLKAta t =KAtakoL ผลลัพธ์จะเป็น True เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ถ้าขนาดของ s ไม่เหมือนกับขนาดของ t แล้ว คืนค่าเท็จ s :=
สมมติว่าเราต้องการกำหนดคลาส iterator ที่สร้างด้วยสตริง encodedlowercase ความยาวรัน พูดว่า s มีสองฟังก์ชันสำหรับ iterator นี้คือ - next() ค้นหาองค์ประกอบถัดไปในตัววนซ้ำ hasnext() ใช้สำหรับตรวจสอบว่าองค์ประกอบถัดไปมีอยู่หรือไม่ ดังนั้น หากอินพุตเป็น s =2b1a ให้สร้างวัตถุด้วย s จากนั้นเรียก next(),
สมมติว่าเรามีหมายเลข n มีคนจำนวน n ค้นหาที่นั่ง เรายังมีรายการของบิตที่ 1 หมายถึงที่นั่งที่ถูกครอบครองแล้ว และ 0 หมายถึงที่นั่งว่าง ไม่มีใครนั่งติดกันสองคนได้ เราจึงต้องตรวจสอบว่าคนทั้ง n หาที่นั่งได้หรือไม่ ดังนั้น หากอินพุตเป็น n =2 ที่นั่ง =[1, 0, 0, 0, 1, 0, 0] เอาต์พุตจะเป็น True เพราะสามารถนั
สมมติว่าเราต้องการใช้โครงสร้างข้อมูลชุดด้วยวิธีต่อไปนี้ - ตัวสร้างเพื่อสร้างอินสแตนซ์ใหม่ของชุด add(val) เพื่อแทรกค่าจำนวนเต็มเข้าไปในเซต exists(val) เพื่อตรวจสอบว่า val อยู่ในเซตหรือไม่ remove(val) เพื่อลบ val ออกจากเซ็ต ดังนั้น หากเราสร้างเซต s ให้เรียก s.add(10), s.add(20), s.add(10), s.exists
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ซึ่งมีองค์ประกอบ n รายการ เราต้องตรวจดูว่าเราจะสร้างรายการที่มี n ตัวเลขแรกได้หรือไม่ ไม่ว่าจะเพิ่มขึ้นหรือลดลง เช่น [1, 2, ..., n] หรือ [n, n - 1, ..., 1] โดยการขยับ ตัวเลขไปทางขวากี่ครั้งก็ได้ ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[5,6,1,2,3,4] ผลลัพธ์จะเป็
สมมติว่าเรามีรายการหมายเลขที่เรียกว่า nums ถ้าความถี่ของจำนวนที่มากที่สุดเป็น nums คือ k เราต้องหาความยาวของรายการย่อยที่สั้นที่สุดเพื่อให้ความถี่ของรายการที่บ่อยที่สุดคือ k ด้วย ดังนั้น หากอินพุตเป็นเหมือน nums =[10, 20, 30, 40, 30, 10] ผลลัพธ์จะเป็น 3 เพราะในที่นี้ตัวเลขที่บ่อยที่สุดคือ 10 และ 30
สมมติว่าเรามีสตริง s ที่มีอักขระที่เป็นไปได้สี่ตัว 1, 2, 3 และ ? เราสามารถใส่ 1, 2 และ 3 อันใดอันหนึ่งแทน ? เราต้องหาจำนวนที่น้อยที่สุดที่เราสามารถทำได้เพื่อไม่ให้มีเลขสองตัวติดกันเหมือนกัน ดังนั้น หากอินพุตเป็น s =2??3? ผลลัพธ์จะเป็น 21231 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - ผม :=0 s :=
สมมติว่าเรามีรายการหมายเลขที่เรียก ตอนนี้ให้เราพิจารณาคู่ของดัชนี (i, j) โดยที่ i 1. จากนั้นให้หาผลรวมของคู่ที่น้อยที่สุด 1 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - n :=ขนาดของ nums min_seen :=nums[0] ตอบ :=inf สำหรับฉันในช่วง 2 ถึง n - 1 ทำ ans :=ขั้นต่ำของ ans และ (min_seen + nums[i]) min_
สมมติว่าเรามีรายการตัวเลขเป็นตัวเลข เราต้องเรียงลำดับรายการจากน้อยไปมากตามจำนวน 1s ที่มีอยู่ในการแสดงเลขฐานสองสำหรับแต่ละตัวเลข หากตัวเลขสองตัวมีจำนวน 1 เท่ากัน ให้จัดเรียงตามค่าของตัวเลข ดังนั้น หากอินพุตมีค่าเท่ากับ nums =[4, 1, 12, 7, 6] ผลลัพธ์จะเป็น [1, 4, 6, 12, 7] เพราะ − รูปแบบไบนารีของ 4
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums ซึ่งองค์ประกอบต่างๆ จะถูกเรียงลำดับจากน้อยไปหามาก เราต้องยกกำลังสององค์ประกอบและส่งคืนผลลัพธ์ตามลำดับการจัดเรียง ดังนั้น หากอินพุตเท่ากับ nums =[-8, -3, 0, 5, 6] เอาต์พุตจะเป็น [0, 9, 25, 36, 64] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - n :=ขนาดของ nu
สมมติว่าเรามีรายการหมายเลขที่เรียกว่า nums เราต้องตรวจสอบว่ารายการสลับกันตั้งแต่เพิ่มอย่างเข้มงวดแล้วลดน้อยลงแล้วเพิ่มขึ้นเรื่อย ๆ เรื่อย ๆ และหากรายการเพิ่มขึ้นอย่างเคร่งครัดก็จะมีผลบังคับ ดังนั้น หากอินพุตเป็น nums =[2, 4, 8, 7, 5, 1, 5, 7, 2, 1] ผลลัพธ์จะเป็น True เพราะ [2,4,8] กำลังเพิ่มขึ้น ดั
สมมติว่าเรามีสองสตริง s และ t เราต้องการสร้าง t แต่มีปัญหาบางอย่างในแป้นพิมพ์ที่อักขระบางตัวติดอยู่ ดังนั้นจึงอาจเขียนได้ 1 ครั้งขึ้นไป เราต้องเช็คก่อนว่ามันเป็นไปได้ที่ typed s ตั้งใจจะเขียน t หรือเปล่า ดังนั้น หากอินพุตเป็น s =appppleee t =apple ผลลัพธ์จะเป็น True เพื่อแก้ปัญหานี้ เราจะทำตามขั้น
สมมติว่าเรามีตัวเลข n เราต้องหาผลรวมของจำนวนเต็มคี่บวก n ตัวแรก ดังนั้น หากอินพุตเป็น n =10 ผลลัพธ์จะเป็น 100 เนื่องจากจำนวนเต็มคี่ 10 ตัวแรกคือ [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] และผลรวมของมันคือ 100. เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - มีข้อสังเกตว่าสำหรับเลขคี่ n ตัวแรก ผลรวมจะเป็นก
สมมติว่าเราต้องการสร้างโครงสร้างข้อมูลที่มีสองวิธี - add(val) เป็นการเพิ่มค่า val ให้กับโครงสร้างข้อมูล find(val) ใช้สำหรับตรวจสอบว่ามีองค์ประกอบ 2 ตัวที่ผลรวมเป็น val หรือไม่ เราต้องออกแบบสิ่งนี้เพื่อให้ได้ผลลัพธ์ในทันที เราจะไม่ค้นหาตัวเลขทุกครั้งที่มีการสอบถาม ดังนั้นหากอินพุตเป็นเหมือนสร้างว
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และยังมีค่าเป้าหมายด้วย เราต้องหาผลรวมของคู่ตัวเลขที่ใหญ่ที่สุดใน num ที่มีผลรวมสูงสุด (target-1) ดังนั้น หากอินพุตเท่ากับ nums =[8, 3, 4, 9, 2] target =8 ผลลัพธ์จะเป็น 7 เนื่องจากผลรวมของคู่ตัวเลขที่ใหญ่ที่สุดที่น้อยกว่า 8 คือ 4 + 3 =7 เพื่อแก้ปัญหานี้ เ
สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums และองค์ประกอบใน nums จะถูกจัดเรียงตามลำดับจากน้อยไปมาก เรายังมีค่า k อีกค่าหนึ่ง เราต้องตรวจสอบว่าสององค์ประกอบที่นำมาจากรายการนั้นรวมกันเป็น k หรือไม่ ตัวเลขสามารถเป็นลบหรือ 0 ได้เช่นกัน เราต้องแก้ปัญหานี้โดยใช้พื้นที่ในปริมาณคงที่ ดังนั้น หากอินพุตเป็น nu
สมมติว่าเรามีสตริงตัวพิมพ์เล็กสองตัว s และ t ซึ่งมีความยาวเท่ากัน เราสามารถเลือกตัวละครหนึ่งตัวจาก s และอีกตัวจาก t และสลับพวกมันได้ เราสามารถดำเนินการนี้ได้หลายครั้งตามต้องการ สุดท้ายเราต้องตรวจสอบว่าเป็นไปได้ไหมที่จะทำให้ทั้งสองสายเหมือนกันหรือไม่ ดังนั้น หากอินพุตเป็น s =abcd t =cdab ผลลัพธ์จะเป