หน้าแรก
หน้าแรก
สมมติว่าเรามี n range ที่มี L และ R เราต้องตรวจสอบหรือหาดัชนี 0 โดยอิงจากช่วงที่ครอบคลุมช่วง n – 1 อื่นๆ ทั้งหมดที่กำหนด หากไม่มีช่วงดังกล่าว ให้แสดง -1 ตัวอย่างเช่น ถ้า L =[2, 4, 3, 1] และ R =[4, 6, 7, 9] ผลลัพธ์จะเป็น 3 ดังนั้นจึงหมายความว่าช่วงที่ดัชนีที่ 3 (1 ถึง 9) ครอบคลุมทั้งหมด องค์ประกอบของ
สมมติว่าเรามีนิพจน์เลขคณิตโดยไม่มีวงเล็บ งานของเราคือค้นหาผลลัพธ์ที่เป็นไปได้ทั้งหมดของนิพจน์นั้น สมมติว่านิพจน์เป็นเหมือน 1+2*3-4 นี้สามารถตีความได้ดังนี้ − 1+(2*(3-4)) =1 + (2* -1) =-1 (1+2)*(3-4) =3 * -1 =-3 1+((2*3)-4) =1 + (6 - 4) =3 ((1+2)*3)-4 =(3 * 3) - 4 =5 1+(2*3)-4 =1 + 6 – 4 =3 เพื่อแ
พิจารณาว่าเรามีราคาขายและให้เปอร์เซ็นต์ของกำไรหรือขาดทุน เราต้องหาราคาต้นทุนของผลิตภัณฑ์ สูตรจะเป็นดังนี้ − $$ต้นทุน \:ราคา =\frac{ราคาขาย * 100}{101}{100 + เปอร์เซ็นต์ \:กำไร}$$ $$ต้นทุน \:ราคา =\frac{ราคาขาย *100}{101}{100 + เปอร์เซ็นต์\:ขาดทุน}$$ ตัวอย่าง #include<iostream> using namespac
สมมติว่าเรามีอาร์เรย์ที่เรียงลำดับหนึ่งรายการที่มีองค์ประกอบ n อาร์เรย์ถูกจัดเรียง เราต้องค้นหาว่าองค์ประกอบนั้นมีอยู่ในอาร์เรย์หรือไม่ โดยที่จำนวนองค์ประกอบที่เล็กกว่านั้นเท่ากับจำนวนองค์ประกอบที่ใหญ่กว่า หากจุดเท่ากันปรากฏขึ้นหลายครั้งในอาร์เรย์ ให้คืนค่าดัชนีของการเกิดครั้งแรก หากไม่มีจุดดังกล่าว
สมมติว่าเรามีต้นไม้ไบนารีสองทรี เราต้องหาใบแรกของต้นไม้สองต้นที่ไม่ตรงกัน หากไม่มีใบที่ไม่ตรงกันก็ไม่ต้องแสดงอะไร หากเป็นต้นไม้สองต้น ใบแรกที่ไม่ตรงกันคือ 11 และ 15 ในที่นี้เราจะใช้การสั่งจองล่วงหน้าแบบวนซ้ำของต้นไม้ทั้งสองต้นพร้อมกันโดยใช้สแต็ก เราจะใช้กองที่แตกต่างกันสำหรับต้นไม้ต่างๆ เราจะผลั
สมมติว่าเรามี n จุดบนแกน x และรายการการแปลที่อนุญาตระหว่างจุดต่างๆ ค้นหาว่าเป็นไปได้ที่จะถึงจุดสิ้นสุดจากจุดเริ่มต้นผ่านธุรกรรมเหล่านี้เท่านั้น ดังนั้นหากมีการแปลระหว่างจุด x1 และ x2 เราก็สามารถย้ายจากจุด x ไปยังจุดกลางใดๆ ระหว่าง x1 และ x2 หรือโดยตรงไปที่ x2 ดังนั้นถ้า n =5 และธุรกรรมคือ 0 ถึง 2, 2
สมมติว่าเรามีอาร์เรย์ขององค์ประกอบ N องค์ประกอบเหล่านี้เป็น 0 หรือ 1 ค้นหาตำแหน่งของ 0 ที่จะแทนที่ด้วย 1 เพื่อให้ได้ลำดับที่ต่อเนื่องกันที่ยาวที่สุดของ 1 วินาที สมมติว่าอาร์เรย์เป็นเหมือน arr =[1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1] ดัชนีเอาต์พุตคือ 9 การแทนที่ 0 ด้วย 1 ที่ดัชนี 9 ทำให้ ลำดับต่อเนื่
สมมติว่าเรามีตัวเลข n เราต้องหาจำนวนเฉพาะพิเศษที่ใหญ่ที่สุดซึ่งน้อยกว่าหรือเท่ากับ N จำนวนเฉพาะพิเศษคือตัวเลข ซึ่งสามารถสร้างขึ้นได้โดยการวางตัวเลขทีละตัว ดังนั้นจำนวนผลลัพธ์ทั้งหมดจึงเป็นจำนวนเฉพาะ เราจะใช้ Sieve Of Eratosthenes เราจะสร้างอาร์เรย์ตะแกรงจนถึงจำนวน n จากนั้นเริ่มวนซ้ำจากตัวเลข N โดย
สมมติว่าเรามีสตริง X และ Y สองสตริง และเราต้องหาความยาวของลำดับย่อยที่ยาวที่สุดของสตริง X ซึ่งเป็นสตริงย่อยในลำดับ Y ดังนั้นหาก X =ABCD และ Y =BACDBDCD ผลลัพธ์จะเป็น 3 เนื่องจาก “ACD” เป็นลำดับย่อยที่ยาวที่สุดของ X ซึ่งเป็นสตริงย่อยของ Y ที่นี่เราจะใช้แนวทางการเขียนโปรแกรมแบบไดนามิกเพื่อแก้ปัญหานี้
ที่นี่เราจะดูวิธีเปรียบเทียบสองสตริงใน C ++ C ++ มีคลาสสตริง นอกจากนี้ยังมีฟังก์ชัน Compare() ในไลบรารีมาตรฐานเพื่อเปรียบเทียบสตริง ฟังก์ชันนี้จะตรวจสอบอักขระสตริงทีละตัว หากมีบางค่าที่ไม่ตรงกัน ระบบจะส่งกลับค่าที่ไม่ใช่ศูนย์ ให้เราดูโค้ดเพื่อรับแนวคิดที่ดีขึ้น ตัวอย่าง #include<iostream> usin
กำหนดเมทริกซ์ของอักขระต่างๆ เริ่มจากตัวละครตัวหนึ่ง เราต้องหาเส้นทางที่ยาวที่สุดโดยสำรวจตัวละครทั้งหมดที่มากกว่าตัวละครปัจจุบัน ตัวละครเรียงต่อกัน เริ่มจาก E. ในการค้นหาเส้นทางที่ยาวที่สุด เราจะใช้อัลกอริธึม Depth First Search ระหว่าง DFS ปัญหาย่อยบางอย่างอาจเกิดขึ้นหลายครั้ง เพื่อหลีกเลี่ยงการค
ที่นี่เราจะเห็นเคล็ดลับดีๆ ของภาษาการเขียนโปรแกรม C++ ที่สามารถช่วยเราได้ในด้านต่างๆ เช่นเดียวกับถ้าเราต้องการมีส่วนร่วมในกิจกรรมการเขียนโปรแกรมการแข่งขัน เทคนิคเหล่านี้จะช่วยให้เราลดเวลาในการเขียนโค้ดได้ เรามาดูตัวอย่างเหล่านี้กันทีละคน ตรวจสอบว่าตัวเลขเป็นเลขคี่หรือเลขคู่โดยไม่ใช้ตัวดำเนินการ % เ
ในส่วนนี้ เราจะมาดูวิธีการสร้างและใช้จำนวนเชิงซ้อนใน C++ เราสามารถสร้างคลาสจำนวนเชิงซ้อนใน C ++ ที่สามารถเก็บส่วนจริงและส่วนจินตภาพของจำนวนเชิงซ้อนเป็นองค์ประกอบสมาชิก จะมีบางฟังก์ชั่นของสมาชิกที่ใช้จัดการคลาสนี้ ในตัวอย่างนี้ เรากำลังสร้างคลาสประเภทเชิงซ้อน ฟังก์ชันเพื่อแสดงจำนวนเชิงซ้อนในรูปแบบที
สมมติว่าเราต้องการสร้างสแต็กที่สามารถเก็บองค์ประกอบสูงสุดไว้ในสแต็กได้ และเราสามารถทำได้ในเวลา O(1) ข้อจำกัดคือควรใช้ O(1) ช่องว่างเพิ่มเติม เราสามารถสร้างสแต็กที่กำหนดโดยผู้ใช้ได้หนึ่งอัน ซึ่งจะเก็บค่าสูงสุดไว้ เมื่อดำเนินการอย่างใดอย่างหนึ่ง เช่น ป๊อปหรือแอบดู ค่าสูงสุดจะถูกส่งคืน สำหรับการดูข้อม
เราจะมาดูวิธีการใช้ฟังก์ชัน sort() ของ C++ STL เพื่อจัดเรียงอาร์เรย์ ดังนั้นหากอาร์เรย์มีค่า A =[52, 14, 85, 63, 99, 54, 21] ผลลัพธ์จะเป็น [14 21 52 54 63 85 99]. ในการเรียงลำดับ เราจะใช้ฟังก์ชัน sort() ซึ่งมีอยู่ในไฟล์ส่วนหัว รหัสเป็นเหมือนด้านล่าง − ตัวอย่าง #include <iostream> #include <
สมมติว่าเรามีอาร์เรย์ขององค์ประกอบ n เราต้องหาจำนวนองค์ประกอบสูงสุดเพื่อเลือกจากอาร์เรย์ เพื่อให้ผลต่างระหว่างสององค์ประกอบที่เลือกมีค่าน้อยกว่าหรือเท่ากับ 1 ดังนั้นหากอาร์เรย์เป็นแบบ [2, 2, 3, 4, 5] จากนั้นองค์ประกอบจะเป็น 3 ดังนั้นลำดับที่มีการนับสูงสุดคือ 2, 2, 3 ความแตกต่างแน่นอนของ 0 และ 1 หมา
ที่นี่เราจะเห็นเมื่อเราต้องสร้างตัวดำเนินการมอบหมายของตัวเองใน C ++ หากชั้นเรียนไม่มีพอยน์เตอร์ เราก็ไม่จำเป็นต้องสร้างโอเปอเรเตอร์การมอบหมายและคัดลอกคอนสตรัคเตอร์ คอมไพเลอร์ C++ สร้างตัวสร้างการคัดลอกและตัวดำเนินการมอบหมายสำหรับแต่ละคลาส หากโอเปอเรเตอร์ไม่เพียงพอ เราก็จะต้องสร้างโอเปอเรเตอร์ขึ้นเอง
สมมติว่าเรามีตัวเลข n หลัก เราต้องหาจำนวนสูงสุดที่สามารถรับได้โดยใช้ตัวเลขทั้งหมดของตัวเลขนั้น ดังนั้นหากตัวเลขคือ 339625 จำนวนสูงสุดคือ 965332 จากปัญหาจะเห็นว่าเราสามารถเรียงลำดับตัวเลขง่ายๆ แบบไม่เพิ่มขึ้นแล้วพิมพ์ออกมาได้ แต่เราสามารถแก้ปัญหานี้ได้โดยใช้วิธีที่มีประสิทธิภาพมากขึ้น เราสามารถสร้าง
อย่างที่เราทราบคุณสมบัติพื้นฐานบางอย่างของภาษาโปรแกรมเชิงวัตถุคือ Inheritance, Encapsulation, Polymorphism ภาษาใดๆ ที่สนับสนุนคุณลักษณะเหล่านี้ทั้งหมดเรียกว่าภาษาโปรแกรมเชิงวัตถุ บางภาษาเช่น C++ รองรับสามภาษานี้แต่ไม่ทั้งหมด ดังนั้นจึงเป็นภาษาเชิงวัตถุบางส่วน ให้เราดูเหตุผลว่าทำไม C++ ถึงไม่เรียกว่า
สมมติว่าเรามีตัวเลขสองตัว n และข้อเท็จจริง เราต้องหากำลังที่ใหญ่ที่สุดของ n ที่หารความจริง! (แฟกทอเรียลของความจริง). ดังนั้นหาก fact =5 และ n =2 ผลลัพธ์จะเป็น 3 ดังนั้น 5! =120 และนี่หารด้วย 2^3 =8 ลงตัว เราจะใช้สูตรของ Legendre นี้พบว่ากำลังที่ใหญ่ที่สุดของจำนวนเฉพาะที่แบ่งความจริง!. เราจะหาตัวประ