หน้าแรก
หน้าแรก
ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อสร้างโปรแกรมที่ขับเคลื่อนด้วยเมนูสำหรับเครื่องคิดเลขอย่างง่าย โปรแกรมนี้จะให้ผู้ใช้สามารถเลือกการดำเนินการทางคณิตศาสตร์ต่อไปนี้ บวก ลบ คูณ หาร HCF และ LCM ตัวอย่าง #include <bits/stdc++.h> using namespace std; //displaying the menu void menu(){ &nb
ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อให้ได้อาร์เรย์ย่อยขนาด k สูงสุดโดยใช้ชุดใน C++ STL สำหรับสิ่งนี้ เราจะได้รับอาร์เรย์ขนาด N และจำนวนเต็ม K ภารกิจของเราคือรับองค์ประกอบสูงสุดในแต่ละองค์ประกอบ K รวมกันแล้วพิมพ์ออกมา ตัวอย่าง #include <bits/stdc++.h> using namespace std; //returning sum of
ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อทำความเข้าใจ map equal_range ใน C++ STL ฟังก์ชันนี้จะคืนค่าตัววนซ้ำคู่หนึ่งที่จำกัดช่วงของคอนเทนเนอร์ซึ่งมีคีย์เทียบเท่ากับพารามิเตอร์ที่กำหนด ตัวอย่าง #include <bits/stdc++.h> using namespace std; int main() { //initializing container
สมมติว่าเรามีเมทริกซ์ A สองมิติ โดยที่แต่ละค่าเป็น 0 หรือ 1 ในที่นี้ การย้ายประกอบด้วยการเลือกแถวหรือคอลัมน์ใดๆ และสลับแต่ละค่าในแถวหรือคอลัมน์นั้น:เปลี่ยน 0 ทั้งหมดเป็น 1 วินาที และ 1 เป็น 0 ทั้งหมด หลังจากทำการย้ายจำนวนเท่าใดก็ได้ ทุกแถวของเมทริกซ์นี้จะถูกตีความว่าเป็นเลขฐานสอง และคะแนนของเมทริกซ์
สมมติว่าเราต้องหาพาลินโดรมเฉพาะที่เล็กที่สุดที่มากกว่าหรือเท่ากับ N ดังนั้นถ้า N คือ 13 แล้ว palindrome ที่เล็กที่สุดจะเป็น 101 เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - หาก N อยู่ในช่วง 8 ถึง 11 ให้คืนค่า 11 สำหรับผมอยู่ในช่วง 1 ถึง 99999 s :=ฉันเป็นสตริง r :=s ย้อนกลับ r num
สมมติว่าเรามีจำนวนเต็มบวก N เราจะเรียงลำดับตัวเลขใหม่ตามลำดับใดๆ (รวมถึงลำดับเดิม) โดยที่หลักนำหน้าจะไม่เป็นศูนย์ เราต้องตรวจสอบก่อนว่าจะทำในลักษณะนี้ได้หรือไม่ ผลลัพธ์ที่ได้จะเป็นเลขยกกำลัง 2 ดังนั้นหากตัวเลขเช่น 46 คำตอบจะเป็นจริง เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดวิธีการที่เรี
สมมติว่าเรามีลำดับ X_1, X_2, ..., X_n เป็นเหมือนฟีโบนักชีถ้า − =3 X_i + X_{i+1} =X_{i+2} สำหรับ i + 2 ทั้งหมด <=n ทีนี้ สมมติว่าอาร์เรย์ A ที่เพิ่มขึ้นอย่างเข้มงวดของจำนวนเต็มบวกสร้างลำดับ เราต้องหาความยาวของลำดับย่อยคล้ายฟีโบนักชีที่ยาวที่สุดของ A ถ้าไม่มีอยู่ ให้คืนค่า 0 ดังนั้นหากตัวเลขนั
สมมติว่าเรามีกล้วย N กอง กองที่ i มีกล้วย ที่นี่ยามไปแล้วและจะกลับมาในชั่วโมง H Koko สามารถกำหนดความเร็วในการกินกล้วยต่อชั่วโมงของเธอได้คือ K ในแต่ละชั่วโมง เธอหยิบกล้วยกองหนึ่งไปกิน K กล้วยจากกองนั้น ถ้ากองกล้วยมีน้อยกว่า K เธอก็กินกล้วยทั้งหมดแทน และจะไม่กินกล้วยอีกในชั่วโมงนี้ คิดซะว่าโคโคะชอบกิน
สมมติว่าเรามีผู้เล่นสองคน อเล็กซ์และลี พวกเขาเล่นเกมกับกองหิน มีกองหินจำนวนเท่ากันที่จัดเรียงเป็นแถว และแต่ละกองมีกองหินจำนวนหนึ่ง[i] วัตถุประสงค์ของเกมคือการจบด้วยหินมากที่สุด เมื่อจำนวนหินทั้งหมดเป็นเลขคี่ จะไม่มีความสัมพันธ์กัน อเล็กซ์และลีผลัดกัน โดยที่อเล็กซ์เริ่มก่อน ในแต่ละเทิร์น ผู้เล่นจะหยิ
สมมติว่าเรามีอาร์เรย์ที่เรียกว่าคน ตอนนี้บุคคลที่ i มีน้ำหนักคน[i] และเรือแต่ละลำสามารถบรรทุกน้ำหนักสูงสุดได้ หากเรือแต่ละลำบรรทุกผู้โดยสารได้ไม่เกิน 2 คนพร้อมกัน โดยให้น้ำหนักรวมของคนเหล่านั้นไม่เกินขีดจำกัด เราต้องหาจำนวนเรือขั้นต่ำที่จะบรรทุกได้ทุกคน ดังนั้นหากอินพุตเป็น [3,2,1,2] และจำกัดเป็น 3
สมมติว่าเรามีตาราง 2 มิติที่มีแถว R และคอลัมน์ C เราเริ่มจาก (r0, c0) ที่หันไปทางทิศตะวันออก ที่นี่ มุมตะวันตกเฉียงเหนือของตารางอยู่ที่แถวและคอลัมน์แรก และมุมตะวันออกเฉียงใต้ของตารางอยู่ที่แถวและคอลัมน์สุดท้าย เราจะเดินเป็นเกลียวตามเข็มนาฬิกาเพื่อเยี่ยมชมทุกตำแหน่งในตารางนี้ เมื่อเราอยู่ที่นอกเขตกริ
สมมติว่าเรามีกลุ่มคน N (มีหมายเลข 1, 2, ..., N) เราอยากจะแบ่งทุกคนออกเป็นสองกลุ่มย่อยทุกขนาด ตอนนี้แต่ละคนอาจจะไม่ชอบคนอื่นบ้างและไม่ควรไปอยู่กลุ่มเดียวกัน ดังนั้น ถ้า dislikes[i] =[a, b] แสดงว่าไม่อนุญาตให้ใส่เลข a และ b เข้ากลุ่มเดียวกัน เราต้องหาว่าเป็นไปได้ไหมที่จะแบ่งทุกคนออกเป็นสองกลุ่มด้วยวิธ
สมมติว่าเรามีอาร์เรย์ A ของจำนวนเต็มไม่ติดลบ สำหรับอาร์เรย์ย่อย (ต่อเนื่องกัน) ทุกรายการ B =[A[i], A[i+1], ..., A[j]] (ด้วย i <=j) เราจะทำค่าระดับบิต OR ขององค์ประกอบทั้งหมดใน B ได้ผลลัพธ์ A[i] | A[i+1] | ... | อา[j]. เราต้องหาจำนวนผลลัพธ์ที่เป็นไปได้ (ผลลัพธ์ที่เกิดขึ้นมากกว่าหนึ่งครั้งจะถูกนับเพีย
สมมติว่าเราต้องสร้างตัววนซ้ำที่วนซ้ำผ่านลำดับการเข้ารหัสแบบรัน-ยาว ในที่นี้ ตัววนซ้ำจะเริ่มต้นโดยการเรียก RLEIterator(int[] A) โดยที่ A คือการเข้ารหัสความยาวรันของลำดับ ดังนั้นเราสามารถพูดได้ว่าสำหรับแม้แต่ i ทั้งหมด A[i] บอกเราถึงจำนวนครั้งที่ค่าจำนวนเต็มไม่เป็นลบ A[i+1] ซ้ำกันในลำดับ นี่ iterator
สมมติว่าเรามีอาร์เรย์ A ของจำนวนเต็ม สำหรับแต่ละจำนวนเต็ม A[i] เราต้องเลือก x =-K หรือ x =K และเพิ่ม x ให้กับ A[i] (เพียงครั้งเดียว) หลังจากกระบวนการนี้ เรามีอาร์เรย์ B เราต้องหาความแตกต่างที่น้อยที่สุดที่เป็นไปได้ระหว่างค่าสูงสุดของ B และค่าต่ำสุดของ B ดังนั้นหากอินพุตคือ A =[0,10], K =2 แล้ว ผลลัพ
สมมติว่าในการเลือกตั้ง การลงคะแนนครั้งที่ i- ใช้สำหรับบุคคล[i] ในช่วงเวลา[i] ตอนนี้ เราต้องใช้ฟังก์ชันแบบสอบถามต่อไปนี้:TopVotedCandidate.q(int t) สิ่งนี้จะค้นหาจำนวนบุคคลที่เป็นผู้นำการเลือกตั้ง ณ เวลา t การลงคะแนนเสียงในเวลา t จะนับรวมกับข้อความค้นหาของเรา หากเสมอกัน การโหวตล่าสุด (ในหมู่ผู้สมัครท
สมมติว่าเรามีอาร์เรย์ของจำนวนเต็ม เราต้องเรียงลำดับจากน้อยไปมาก ดังนั้นหากอาร์เรย์เป็นแบบ [5,2,3,1] ผลลัพธ์จะเป็น [1,2,3,5] เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - สร้างเมธอดเดียวที่เรียกว่า partition ซึ่งจะเป็นอาร์เรย์ ต่ำและสูง ตั้งค่า pivot :=ต่ำ สำหรับผมอยู่ในช่วงต่ำไปสูง – 1 ถ
สมมติว่าเรามีอาร์เรย์ A เราต้องแบ่งอาร์เรย์ออกเป็นสองอาร์เรย์ย่อยด้านซ้ายและขวา - ทุกองค์ประกอบในอาร์เรย์ย่อยด้านซ้ายจะน้อยกว่าหรือเท่ากับทุกองค์ประกอบในอาร์เรย์ย่อยด้านขวา อาร์เรย์ย่อยด้านซ้ายและขวาไม่ว่างเปล่า อาร์เรย์ย่อยด้านซ้ายมีขนาดเล็กที่สุด เราต้องหาความยาวของด้านซ้ายหลังจากการแบ
สมมติว่ามีการกำหนดสตริงของ 0 และ 1 สตริงนั้นจะเพิ่มขึ้นแบบโมโนโทนิกหากประกอบด้วยจำนวน 0 (อาจเป็น 0) ตามด้วยจำนวน 1 (อาจเป็น 0 ด้วย) เรามีสตริง S ของ 0 และ 1 และเราอาจพลิก 0 เป็น 1 หรือ 1 เป็น 0 ค้นหาจำนวนการพลิกขั้นต่ำเพื่อให้ S เสียงเดียวเพิ่มขึ้น ดังนั้นหากอินพุตเป็น 010110 เอาต์พุตจะเป็น 2 เมื่อพ
สมมติว่ามีอาร์เรย์ A เท่ากับ 0 และ 1 วินาที เราต้องค้นหาว่าอาร์เรย์ย่อยที่ไม่ว่างมีจำนวนเท่าใดที่มีผลรวม S ดังนั้นหากอินพุตเป็น [1,0,1,0,1] และ S =2 ผลลัพธ์จะเป็น 4 เนื่องจากอาร์เรย์ย่อยคือ [1,0,1,0,1], [1,0 ,1,0,1], [1,0,1,0,1], [1,0,1,0,1]. เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ - กำหนดวิธ