หน้าแรก
หน้าแรก
คำชี้แจงปัญหา รับอาร์เรย์ arr[] ขององค์ประกอบ N และจำนวนเต็ม K โดยที่ K
คำชี้แจงปัญหา กำหนดหมายเลขที่ไม่ได้ลงนาม ให้หาจำนวนสูงสุดที่จะเกิดขึ้นได้โดยใช้บิตของหมายเลขที่ไม่ได้ลงนามที่ให้ไว้ หากตัวเลขที่ป้อนคือ 8 การแทนค่าไบนารีของมันคือ− 00000000000000000000000000001000 หากต้องการขยายให้ใหญ่สุด ให้ตั้งค่า MSB เป็น 1 จากนั้นตัวเลขจะกลายเป็น 2147483648 ซึ่งมีการแทนค่าไบนา
คำชี้แจงปัญหา เมื่อพิจารณาจากท่อนความยาว L ภารกิจคือการตัดท่อนไม้ในลักษณะที่จำนวนเซกเมนต์ทั้งหมดของความยาว p, q และ r เพิ่มขึ้นสูงสุด เซ็กเมนต์มีความยาวได้เฉพาะ p, q และ r ถ้า l =15, p =2, q =3 และ r =5 เราก็สามารถสร้าง 7 เซ็กเมนต์ได้ดังนี้ − {2, 2, 2, 2, 2, 2, 3} อัลกอริทึม เราสามารถแก้ปัญหานี้ไ
คำชี้แจงปัญหา กำหนดอาร์เรย์ของจำนวนเต็ม N คุณได้รับอนุญาตให้จัดเรียงองค์ประกอบของอาร์เรย์ใหม่ ภารกิจคือการหาค่าสูงสุดของ Σarr[i]*i โดยที่ i =0, 1, 2, .. n – 1. หากอาร์เรย์อินพุต ={4, 1, 6, 2} ผลรวมสูงสุดจะเป็น 28 หากเราจัดเรียงองค์ประกอบใหม่ตามลำดับการจัดเรียง− {1, 2, 4, 6} =(1 * 0) + (2 * 1) + (4
คำชี้แจงปัญหา กำหนดจำนวนเต็มที่ไม่เป็นศูนย์สามจำนวน a, b และ c ภารกิจคือการหาค่าสูงสุดที่เป็นไปได้โดยใส่เครื่องหมายการบวกและการคูณระหว่างกันในลำดับใดก็ได้ โปรดทราบว่าอนุญาตให้จัดเรียงจำนวนเต็มได้ แต่ต้องใช้การบวกและการคูณเพียงครั้งเดียว หาก a =1, b =3 และ c =5 ค่าสูงสุดจะเป็น 20 ดังนี้− (1 + 3) *
คำชี้แจงปัญหา จากอาร์เรย์ arr[] ค้นหาค่าสูงสุดของ (arr[i] – i) – (arr[j] – j) โดยที่ i ไม่เท่ากับ j โดยที่ i และ j แปรผันจาก 0 ถึง n-1 และ n คือขนาดของอาร์เรย์อินพุต arr[] หากอาร์เรย์อินพุตคือ {7, 5, 10, 2, 3} เราก็จะได้ค่าสูงสุด 9 ค่าดังนี้− (องค์ประกอบ 10 – ดัชนี 2) - (องค์ประกอบ 2 – ดัชนี 3) (1
สมมติว่าเรามีอาร์เรย์ที่เรียงกันสองตัวและจำนวน x เราต้องหาคู่ที่ผลรวมใกล้เคียงกับ x มากที่สุด และทั้งคู่มีองค์ประกอบจากแต่ละอาร์เรย์ เรามีสองอาร์เรย์ A1 [0..m-1] และ A2 [0..n-1] และอีกค่าหนึ่ง x เราต้องหาคู่ A1[i] + A2[j] ให้มีค่าสัมบูรณ์ของ (A1[i] + A2[j] – x) น้อยที่สุด ดังนั้นหาก A1 =[1, 4, 5, 7]
พิจารณาว่ามีเพื่อนสองคนและตอนนี้พวกเขาต้องการทดสอบความสัมพันธ์ของพวกเขา ดังนั้นพวกเขาจะตรวจสอบว่าเข้ากันได้มากแค่ไหน ให้ตัวเลข n, หมายเลขจาก 1..n. และขอให้พวกเขาจัดอันดับตัวเลข พวกเขาต้องหาความเข้ากันได้ระหว่างพวกเขา ความแตกต่างของความเข้ากันได้นั้นเป็นจำนวนที่ไม่ตรงกันในการจัดอันดับที่เกี่ยวข้องของ
ใน C++ เราใช้เนมสเปซต่างกัน เรายังสามารถสร้างเนมสเปซของเราเองได้ ตัวอย่างเช่น โดยทั่วไป เราใช้เนมสเปซมาตรฐานที่เรียกว่า std เราเขียนไวยากรณ์เช่น: using namespace std; ในไลบรารีมาตรฐาน มันมีฟังก์ชันทั่วไปที่คุณใช้ในการสร้างแอปพลิเคชันของคุณ เช่น คอนเทนเนอร์ อัลกอริธึม ฯลฯ หากชื่อที่ใช้โดยชื่อเหล่านี
อย่างที่เราทราบดีว่าฟังก์ชั่นโอเวอร์โหลดเป็นหนึ่งในคุณสมบัติหลักของภาษาเชิงวัตถุ เราสามารถใช้ชื่อฟังก์ชันเดียวกันได้ ซึ่งมีชุดพารามิเตอร์ต่างกัน ที่นี่เราจะมาดูวิธีการโอเวอร์โหลดคอนสตรัคเตอร์ของคลาส C ++ การโอเวอร์โหลดคอนสตรัคเตอร์มีแนวคิดที่สำคัญบางประการ คอนสตรัคเตอร์ที่โอเวอร์โหลดต้องมีชื่อเดียว
มันถูกใช้เพื่อแยกอักขระจากสตรีมเป็นอินพุตที่ไม่ได้จัดรูปแบบและเก็บไว้ใน s เป็น c-string จนกว่าอักขระที่แยกออกมาจะเป็นอักขระคั่น หรือ n อักขระถูกเขียนไปยัง s (รวมถึงอักขระ null ที่สิ้นสุด) การประกาศมีลักษณะดังนี้: basic_istream& getline (char_type* s, streamsize n ); basic_istream& getline (c
ตัวแก้ไขข้อความ ใช้สำหรับพิมพ์โปรแกรมของคุณ ตัวอย่างของโปรแกรมแก้ไขบางตัว ได้แก่ Windows Notepad, คำสั่ง OS Edit, Brief, Epsilon, EMACS และ vim หรือ vi ชื่อและเวอร์ชันของโปรแกรมแก้ไขข้อความอาจแตกต่างกันไปตามระบบปฏิบัติการต่างๆ ตัวอย่างเช่น Notepad จะถูกใช้บน Windows และ vim หรือ vi สามารถใช้ได้บน
ที่นี่เราจะเห็น Shuffle และ random_shuffle ใน C++ ฟังก์ชันเหล่านี้ใช้เพื่อสับเปลี่ยนอิลิเมนต์อาร์เรย์ใน C++ เราสามารถใช้เวกเตอร์แทนอาร์เรย์ได้ การใช้งานก็คล้ายคลึงกัน ให้เราดู random_shuffle() ก่อน ใช้เพื่อสุ่มจัดองค์ประกอบใหม่ในช่วง [ซ้าย, ขวา) ฟังก์ชันนี้จะสุ่มสลับตำแหน่งของแต่ละองค์ประกอบด้วยตำแห
ที่นี่เราจะเห็นว่าเป็นฟังก์ชัน upper_bound() ใน C++ STL ฟังก์ชันนี้จะคืนค่า iterator ที่ชี้ไปยังองค์ประกอบแรกในคอนเทนเนอร์ ซึ่งถือว่าเป็นไปตาม val ไวยากรณ์เป็นเหมือน: iterator upper_bound (const value_type& val); const_iterator upper_bound (const value_type& val) const; ค่าที่ส่งกลับเป็นตัว
สมมติว่าเรามีอาร์เรย์ A[] โดยมีองค์ประกอบ n รายการ เราต้องหาอาร์เรย์ B[] อื่นซึ่งมีขนาดเป็น n+1 ดังนั้น GCD ของ B[i] และ B[i + 1] คือ A[i] หากมีหลายวิธีแก้ปัญหา ให้พิมพ์หนึ่งในนั้นที่มีผลรวมอาร์เรย์น้อยที่สุด ดังนั้นหาก A =[1, 2, 3] ผลลัพธ์จะเป็น [1, 2, 6, 3] =LCM ของ A[i + 1], A[i + 2] เมื่อเราต้อง
สมมติว่าเรามีอาร์เรย์ A[] ที่มีองค์ประกอบบวก n รายการ เราต้องสร้างอาร์เรย์ B ขึ้นมาอีกชุดหนึ่ง เพื่อให้ B[i] เป็น XOR ขององค์ประกอบทั้งหมดของ A[] ยกเว้น A[i] ดังนั้น ถ้า A =[2, 1, 5, 9] แล้ว B =[13, 14, 10, 6] ในการแก้ปัญหานี้ ก่อนอื่นเราต้องหา XOR ขององค์ประกอบทั้งหมดของ A และเก็บไว้ในตัวแปร x จาก
คำอธิบาย มีอาร์เรย์ของจำนวนเต็ม (2 * n – 1) เราสามารถเปลี่ยนเครื่องหมายขององค์ประกอบ n ตัวในอาร์เรย์ได้ กล่าวอีกนัยหนึ่ง เราสามารถเลือกองค์ประกอบอาร์เรย์ได้ n รายการ และคูณแต่ละองค์ประกอบด้วย -1 หาผลรวมสูงสุดของอาร์เรย์ ตัวอย่าง หากอาร์เรย์อินพุตเป็น {-2, 100, -3} เราจะได้รับเครื่องหมายการเปลี่ยนแ
คำชี้แจงปัญหา arr[i] ตัวอย่าง หากอาร์เรย์อินพุตเป็น {300, 400, 400, 300} อาร์เรย์ที่จัดเรียงใหม่จะเป็น − arr[i] ดังนั้นคำตอบคือ 2. อัลกอริทึม หากองค์ประกอบทั้งหมดแตกต่างกัน คำตอบก็คือ n-1 โดยที่ n คือจำนวนองค์ประกอบในอาร์เรย์ หากมีองค์ประกอบที่เกิดซ้ำ คำตอบคือ n – maxFrequency ตัวอย่าง เรามาดู
คำชี้แจงปัญหา กำหนดอาร์เรย์สองชุดที่มีขนาดเท่ากัน N ให้สร้างจำนวนคู่สูงสุดโดยใช้องค์ประกอบหนึ่งชุดจากอาร์เรย์แรกและชุดที่สองจากอาร์เรย์ที่สอง เพื่อให้องค์ประกอบจากแต่ละอาร์เรย์ถูกใช้อย่างมากที่สุดหนึ่งครั้งและความแตกต่างแบบสัมบูรณ์ระหว่างอาร์เรย์ที่เลือก องค์ประกอบที่ใช้ในการสร้างคู่มีค่าน้อยกว่าหร
คำชี้แจงปัญหา กำหนดฮีปขั้นต่ำให้หาองค์ประกอบสูงสุดในนั้น ตัวอย่าง หากฮีปอินพุตเป็น − องค์ประกอบสูงสุดคือ 55 อัลกอริทึม ในโหนดพาเรนต์ฮีปขั้นต่ำจะน้อยกว่าโหนดย่อย ดังนั้นเราจึงสรุปได้ว่าโหนดที่ไม่ใช่ใบไม่สามารถเป็นจำนวนสูงสุดได้ ค้นหาองค์ประกอบสูงสุดในโหนดปลายสุด ตัวอย่าง เรามาดูตัวอย่างกัน −