หน้าแรก
หน้าแรก
ที่นี่เราจะเห็นปัญหาหนึ่งที่น่าสนใจในการตรวจสอบว่าตัวเลขคลาดเคลื่อนหรือไม่ มีการกล่าวกันว่าตัวเลขจะคลาดเคลื่อนหากทุกๆ หลัก เป็นตัวเลขเพื่อนบ้านแตกต่างกันสูงสุด 1 ตัวอย่างเช่น ตัวเลข 1223 จะคลาดเคลื่อน แต่ 1256 จะไม่คลาดเคลื่อน ในการแก้ปัญหานี้ เราต้องตรวจสอบว่าตัวเลขหนึ่งมีค่าใกล้เคียงกันซึ่งมีค่าม
ต่อไปนี้เราจะมาดูวิธีการเช็คว่าตัวเลขหารด้วย 5 ลงตัวหรือไม่ วิธีง่ายๆ อย่างหนึ่งคือถ้าตัวดัดแปลงจำนวน 5 =0 จำนวนนั้นหารด้วย 5 ลงตัว แต่เราจะไม่ใช้ตัวดำเนินการ / หรือ % ในการตรวจสอบว่าตัวเลขหารด้วย 5 ลงตัวหรือไม่ เราต้องดูว่าตัวเลขสุดท้ายคือ 0 หรือ 5 หากเป็น 0 หรือ 5 ตัวเลขจะหารด้วย 5 ลงตัว ไม่เช่นนั
ที่นี่เราจะดูวิธีการตรวจสอบว่าตัวเลขเป็นพาลินโดรมหรือไม่ ตัวเลขพาลินโดรมเหมือนกันทั้งสองทิศทาง ตัวอย่างเช่น ตัวเลข 12321 คือ palindrome แต่ 12345 ไม่ใช่ palindrome ตรรกะตรงไปตรงมามาก เราต้องกลับตัวเลขนั้น และหากจำนวนกลับกันเท่ากับจำนวนจริง แสดงว่าเป็นพาลินโดรม ไม่เช่นนั้นก็ไม่ใช่ ให้เราดูอัลกอริธึม
สมมุติว่าให้ตัวเลขมา เราต้องตรวจสอบว่าตัวเลขนั้นเป็นกำลังสองสมบูรณ์หรือไม่ เราจะไม่ใช้การดำเนินการสแควร์รูทเพื่อตรวจสอบ สมมติว่ามีตัวเลข 1024 นี่คือกำลังสองสมบูรณ์ แต่ 1,000 ไม่ใช่กำลังสองสมบูรณ์ ตรรกะง่าย ๆ เราต้องทำตามอัลกอริธึมนี้เพื่อให้ได้ผลลัพธ์ อัลกอริทึม isPerfectSquare(n) − อินพุต − หมาย
31 ทั้งคู่จะคืนค่า 0 เพื่อที่เราจะใช้สูตรอื่นดังต่อไปนี้ − 31) ดังนั้น ถ้า n คือค่าลบ:1 + (-1) – 0 =0 n เป็นค่าบวก:1 + 0 – (-1) =2 n คือ 0:1 + 0 – 0 =1 ตัวอย่าง #include <iostream> #include <cmath> using namespace std; int checkNumber(int n){ return 1+(n >> 31) - (-
ในส่วนนี้เราจะมาดูกันว่าตัวเลขเป็นเลขยกกำลัง 8 หรือไม่ โดยใช้วิธีที่ง่ายกว่านี้ หากมีตัวเลขเช่น 4096 โปรแกรมจะคืนค่า จริง เนื่องจากนี่คือยกกำลัง 8 เคล็ดลับเป็นเรื่องง่าย เราจะคำนวณ log8(num) หากเป็นจำนวนเต็ม n คือกำลังของ 8 ในที่นี้เราจะใช้ฟังก์ชัน tranc(n) เพื่อค้นหาจำนวนเต็มที่ใกล้เคียงที่สุดของค
ที่นี่เราจะเห็นโปรแกรม ถ้าให้ตัวเลขหนึ่ง ให้ค่า k อีก เราต้องตรวจสอบว่าตัวเลขนั้นเป็นกำลังของ k หรือไม่ แต่เราต้องใช้วิธีการเปลี่ยนฐานเพื่อแก้ปัญหานี้ สมมติว่าตัวเลขคือ 27 และ k =3 จากนั้นโดยวิธีเปลี่ยนฐาน 27 จะเป็น 10003 ในที่นี้หลังจากเปลี่ยนฐานแล้วหากมีตัวเลข 1 เกิดขึ้นเพียง 1 รายการและส่วนอื่นๆ
สมมติว่ามีวงรีหนึ่งวง (พิกัดศูนย์กลาง (h, k) และแกนกึ่งแกนหลัก a และแกนกึ่งรอง b) อีกจุดหนึ่งจะได้รับด้วย เราต้องหาว่าจุดนั้นอยู่ในวงรีหรือไม่ ในการแก้ เราต้องแก้สมการต่อไปนี้สำหรับจุดที่กำหนด (x, y) $$\frac{\left(x-h\right)^2}{a^2}+\frac{\left(y-k\right)^2}{b^2}\leq1$$ หากผลลัพธ์มีค่าน้อยกว่าหนึ่
สมมติว่ามีพาราโบลาหนึ่งอัน (พิกัดจุดยอด (h, k) และระยะห่างจากจุดโฟกัสและจุดยอดคือ a) อีกจุดหนึ่งจะได้รับด้วย เราต้องหาว่าจุดนั้นอยู่ในพาราโบลาหรือไม่ ในการแก้ เราต้องแก้สมการต่อไปนี้สำหรับจุดที่กำหนด (x, y) \left(y-k\right)^2=4a\left(x-h\right) หากผลลัพธ์น้อยกว่า 0 แสดงว่าอยู่ในพาราโบลาหากเป็น 0 แ
สมมุติว่ามีเพื่อนไม่กี่คน พวกเขายืมเงินซึ่งกันและกัน ดังนั้นจะมีกระแสเงินสดบางส่วนในเครือข่าย งานของเราคือการลดกระแสเงินสดในเครือข่าย สมมติว่ามีเพื่อนสามคน P1, P2 และ P3 กระแสเงินสดในหมู่พวกเขาเป็นดังนี้ - กระแสเงินสดนี้ไม่ใช่ขั้นต่ำ เราต้องย่อให้เล็กสุด จากนั้นไดอะแกรมสุดท้ายจะเป็นเช่น − เพื่
สมมติว่าเรามีชุดของจุด งานของเราคือการหาจุด K ที่ใกล้กับจุดกำเนิดมากที่สุด สมมติว่าคะแนนคือ (3, 3), (5, -1) และ (-2, 4) จากนั้นจุดสองจุดที่ใกล้ที่สุด (K =2) คือ (3, 3), (-2, 4) ในการแก้ปัญหานี้ เราจะจัดเรียงรายการของคะแนนตามระยะทางแบบยุคลิด จากนั้นจึงนำองค์ประกอบ K ส่วนใหญ่มาจากรายการที่จัดเรียง นั
ที่นี่เราจะมาดูวิธีรับค่าต่ำสุดและสูงสุดจากรายการเชิงเส้นเชื่อมโยงแบบวงกลมเดียว แนวคิดพื้นฐานนั้นง่ายมาก ส่วนถัดไปของโหนดสุดท้ายจะชี้ไปที่โหนดแรก โหนดแรกจะชี้โดยใช้ตัวชี้เริ่มต้นด้วย เมื่อเราแทรกองค์ประกอบบางอย่างลงในรายการ หลังจากแทรกส่วนถัดไปของโหนดที่แทรกใหม่แล้ว จะถูกอัปเดตด้วยที่อยู่ของโหนดเริ่
พิจารณาว่าเรามีชุดของคะแนน เราต้องหาทางปิดง่ายๆ ครอบคลุมทุกจุด สมมติว่าจุดต่างๆ อยู่ด้านล่าง และภาพถัดไปกำลังสร้างเส้นทางปิดบนจุดเหล่านั้น เพื่อให้ได้เส้นทาง เราต้องทำตามขั้นตอนเหล่านี้ - หาจุดล่างซ้ายเป็น P จัดเรียง n อื่น ๆ – 1 จุดตามมุมขั้วทวนเข็มนาฬิการอบ ๆ P หากมุมขั้วของจุดสองจุดเหมือ
เรามีวงกลมหนึ่งวง (พิกัดศูนย์กลางและรัศมี) เราต้องหาจตุภาคของอีกจุดหนึ่ง (x, y) เทียบกับจุดศูนย์กลางของวงกลม ถ้ามีอยู่ในวงกลม จตุภาคพิมพ์ มิฉะนั้น พิมพ์ผิด เนื่องจากจุดนั้นอยู่ภายนอก สมมติว่าจุดศูนย์กลางของวงกลมคือ (h, k) พิกัดของจุดคือ (x, y) เรารู้ว่าสมการของวงกลมคือ − (𝑥−ℎ)2 +(𝑦−𝑘)2 +𝑟2 =0
Flip-Flops เป็นวงจรดิจิตอลแบบต่อเนื่อง รองเท้าแตะมีหลายประเภท ที่นี่เราจะเห็นประเภทของ flip-flop และกฎการแปลงจาก flip-flops อื่น โดยพื้นฐานแล้วรองเท้าแตะมีสี่ประเภท - SR Flip-Flop D Flip-Flop รองเท้าแตะ JK T Flip-Flop SR Flip-flop SR flip-flop ทำงานด้วยการเปลี่ยนสัญญาณนาฬิกาเชิงบวกหรือการเปลี่ยน
ที่นี่เราจะมาดูวิธีการตรวจสอบไบนารีทรีว่ามีการจัดเรียงระดับที่ชาญฉลาดหรือไม่ ต้นไม้ไบนารีที่เรียงลำดับอย่างชาญฉลาดจะมีลักษณะดังนี้ - ในแต่ละระดับ โหนดจะถูกจัดเรียงจากซ้ายไปขวา และแต่ละชั้นมีค่าที่สูงกว่าระดับก่อนหน้า เราสามารถแก้ปัญหานี้ได้โดยดำเนินการข้ามผ่านคำสั่งระดับ และติดตามองค์ประกอบต่ำสุ
สมมติว่าเรามีต้นไม้ไบนารีสองทรี เราต้องตรวจสอบว่าต้นไม้ที่เล็กกว่านั้นเป็นทรีย่อยของไบนารีทรีอื่นหรือไม่ ถือว่าให้ต้นไม้สองต้นนี้ มีต้นไม้สองต้น ต้นไม้ที่สองคือต้นไม้ย่อยของต้นไม้ต้นแรก ในการตรวจสอบคุณสมบัตินี้ เราจะสำรวจทรีในลักษณะโพสต์ลำดับ จากนั้นหากทรีย่อยที่รูทด้วยโหนดนี้เหมือนกันกับทรีที่สอ
ที่นี่เราจะดูวิธีการตรวจสอบสตริงเป็น palindrome หรือไม่ใช้รายการเชื่อมโยงแบบทวีคูณ ที่นี่เราจะผลักอักขระแต่ละตัวของสตริงในรายการที่เชื่อมโยงเป็นสองเท่า จะมีพอยน์เตอร์สองตัว ซ้ายและขวา จากนั้นเริ่มสแกนจากทั้งสองด้าน หากอักขระด้านซ้ายเหมือนกับอักขระด้านขวา ให้ย้ายตัวชี้ด้านซ้ายไปยังโหนดถัดไป และย้ายตั
ที่นี่เราจะดูวิธีการตรวจสอบว่าอาร์เรย์ที่ไม่เรียงลำดับมีองค์ประกอบที่ซ้ำกันภายในระยะ k จากกันหรือไม่ สมมติว่ารายการองค์ประกอบคือ {1, 2, 3, 1, 4, 5} ในที่นี้หาก k =3 โปรแกรมจะคืนค่าเป็นจริง เนื่องจากระยะห่างระหว่าง 1 วินาทีคือ 3 เราจะแก้ปัญหานี้โดยใช้ตารางแฮช ขั้นตอนจะเป็นดังนี้ - สร้างตารางแฮชเปล่
ที่นี่เราจะดูวิธีการตรวจสอบว่าไบนารีทรีเป็น sum-tree หรือไม่ ตอนนี้คำถามคือต้นไม้ผลรวมคืออะไร sum-tree เป็นไบนารีทรีที่โหนดจะเก็บค่าผลรวมของลูก รากของต้นไม้จะมีผลรวมทั้งหมดขององค์ประกอบทั้งหมดที่อยู่ด้านล่าง นี่คือตัวอย่างของผลรวมต้นไม้ - ในการตรวจสอบนี้ เราจะทำตามเคล็ดลับง่ายๆ เราจะพบผลรวมขององค