คำถามติดแท็ก algorithm

อัลกอริทึมเป็นลำดับขั้นตอนที่กำหนดไว้อย่างดีซึ่งกำหนดวิธีแก้ปัญหาแบบนามธรรมให้กับปัญหา ใช้แท็กนี้เมื่อปัญหาของคุณเกี่ยวข้องกับการออกแบบอัลกอริทึม

2
ความแตกต่างระหว่างต้นไม้เซกเมนต์, ต้นไม้ช่วงเวลา, ต้นไม้ดัชนีแบบไบนารีและต้นไม้ช่วงคืออะไร?
อะไรคือความแตกต่างระหว่างต้นไม้เซกเมนต์, ต้นไม้ช่วงเวลา, ต้นไม้ดัชนีแบบไบนารีและต้นไม้ช่วงในแง่ของ: ความคิดหลัก / คำนิยาม การประยุกต์ใช้งาน ประสิทธิภาพ / การสั่งซื้อในมิติที่สูงขึ้น / การใช้พื้นที่ โปรดอย่าเพิ่งให้คำจำกัดความ


17
การค้นหารอบทั้งหมดในกราฟกำกับ
ฉันจะค้นหา (วนซ้ำ) รอบทั้งหมดในกราฟที่มีทิศทางจาก / ไปยังโหนดที่ระบุได้อย่างไร ตัวอย่างเช่นฉันต้องการสิ่งนี้: A->B->A A->B->C->A แต่ไม่ใช่: B-> C-> B

27
ขั้นตอนวิธีการตรวจจับการชนกันของส่วนวงกลม
ฉันมีเส้นจาก A ถึง B และวงกลมวางตำแหน่งที่ C กับรัศมี R อัลกอริทึมที่ดีที่ใช้ในการตรวจสอบว่าเส้นตัดกันวงกลมหรือไม่ และมันเกิดขึ้นที่พิกัดใดตามขอบวงกลม?

9
อะไรคือหลักการทางคณิตศาสตร์ / การคำนวณที่อยู่เบื้องหลังเกมนี้?
ลูก ๆ ของฉันมีเกมที่สนุกที่เรียกว่าSpot It! ข้อ จำกัด ของเกม (ที่ดีที่สุดที่ฉันสามารถอธิบายได้) คือ: เป็นสำรับไพ่ 55 ใบ ในการ์ดแต่ละใบมี 8 ภาพที่ไม่ซ้ำกัน (เช่นการ์ดไม่สามารถมี 2 ภาพเดียวกัน) เมื่อเลือกไพ่ 2 ใบใด ๆ จากเด็คจะมีรูปภาพที่จับคู่เพียง 1 รูปเท่านั้น รูปภาพที่ตรงกันอาจถูกปรับสัดส่วนบนการ์ดที่แตกต่างกัน แต่นั่นเป็นเพียงการทำให้เกมนั้นยากขึ้น (เช่นต้นไม้ขนาดเล็กยังคงตรงกับต้นไม้ใหญ่) หลักการของเกมคือพลิกไพ่ 2 ใบและใครก็ตามที่เลือกภาพที่ตรงกันจะได้รับแต้ม นี่คือภาพเพื่อความกระจ่าง: (ตัวอย่าง: คุณสามารถเห็นได้จากไพ่ 2 ใบด้านบนด้านบนว่าภาพที่จับคู่คือไดโนเสาร์สีเขียวระหว่างภาพล่างขวาและกลางขวาเป็นหัวของตัวตลก) ฉันพยายามที่จะเข้าใจสิ่งต่อไปนี้: รูปภาพขั้นต่ำจำนวนเท่าใดที่ต้องใช้เพื่อให้ตรงกับเกณฑ์เหล่านี้และคุณจะพิจารณาสิ่งนี้อย่างไร ด้วยการใช้ pseudocode (หรือ Ruby) คุณจะสร้างการ์ดเกม 55 เกมอย่างไรจากอาร์เรย์ของรูปภาพ N (โดยที่ N คือจำนวนขั้นต่ำจากคำถามที่ 1) …

30
วิธีที่มีประสิทธิภาพในการซ่อนอีเมลจากบ็อตสแปม
ในหน้าแรกของฉันฉันใช้วิธีนี้เพื่อซ่อนอีเมลของฉันจากบอทสแปม: <a href="admin [at] example.com" rel="nofollow" onclick="this.href='mailto:' + 'admin' + '@' + 'example.com'">Contact me</a> คุณคิดยังไงกับเรื่องนี้? มันมีประสิทธิภาพหรือไม่ คุณรู้จักหรือใช้วิธีการอื่นใด
196 html  algorithm  email  spam 

10
เมื่อใดที่ฉันควรใช้ Kruskal เมื่อเทียบกับ Prim (และในทางกลับกัน)
ฉันสงสัยว่าเมื่อใดควรใช้อัลกอริทึมของ Primและเมื่อKruskalค้นหาต้นไม้ที่ทอดยาวที่สุด พวกเขาทั้งสองมี logics ง่าย ๆ กรณีเลวร้ายที่สุดที่เหมือนกันและความแตกต่างเพียงอย่างเดียวคือการนำไปใช้ซึ่งอาจเกี่ยวข้องกับโครงสร้างข้อมูลที่แตกต่างกันเล็กน้อย ดังนั้นปัจจัยการตัดสินใจคืออะไร?

17
วิธีการทำให้เปอร์เซ็นต์การปัดเศษเพิ่มขึ้นถึง 100%
พิจารณาสี่เปอร์เซ็นต์ด้านล่างซึ่งแสดงเป็นfloatตัวเลข: 13.626332% 47.989636% 9.596008% 28.788024% ----------- 100.000000% ฉันต้องการแสดงเปอร์เซ็นต์เหล่านี้เป็นตัวเลขทั้งหมด ถ้าฉันใช้เพียงMath.round()ฉันจบด้วยจำนวน 101% 14 + 48 + 10 + 29 = 101 ถ้าฉันใช้parseInt()ฉันจะลงเอยด้วย 97% 13 + 47 + 9 + 28 = 97 อัลกอริทึมที่ดีในการแสดงจำนวนเปอร์เซ็นต์ใด ๆ เป็นจำนวนเต็มขณะที่ยังคงรักษาไว้ทั้งหมด 100% แก้ไข : หลังจากอ่านข้อคิดเห็นและคำตอบบางอย่างแล้วมีหลายวิธีที่จะแก้ปัญหานี้ได้อย่างชัดเจน ในใจของฉันเพื่อให้เป็นจริงกับตัวเลขผลลัพธ์ "ถูกต้อง" คือสิ่งที่ช่วยลดข้อผิดพลาดโดยรวมให้น้อยที่สุดซึ่งกำหนดโดยการปัดเศษข้อผิดพลาดจำนวนเท่าใดที่จะนำเสนอเทียบกับค่าจริง value rounded error decision ---------------------------------------------------- 13.626332 14 2.7% round up …

30
วิธีการค้นหาบรรพบุรุษร่วมที่ต่ำที่สุดของสองโหนดในต้นไม้ไบนารีใด ๆ ?
แผนผังไบนารีที่นี่อาจไม่จำเป็นต้องเป็นแผนผังการค้นหาแบบไบนารี โครงสร้างสามารถนำมาเป็น - struct node { int data; struct node *left; struct node *right; }; วิธีแก้ปัญหาสูงสุดที่ฉันสามารถทำได้กับเพื่อนคืออะไรบางอย่างในประเภทนี้ - พิจารณาต้นไม้ไบนารีนี้ : อัตราการเคลื่อนที่ผ่านของ inorder - 8, 4, 9, 2, 5, 1, 6, 3, 7 และผลตอบแทนการสำรวจเส้นทาง postorder - 8, 9, 4, 5, 2, 6, 7, 3, 1 ตัวอย่างเช่นถ้าเราต้องการหาบรรพบุรุษร่วมของโหนด 8 และ 5 จากนั้นเราจะทำรายการโหนดทั้งหมดที่อยู่ระหว่าง 8 และ …

11
รวมกันระหว่างสองรายการ?
ไม่นานมานี้และฉันมีปัญหาในการพันรอบอัลกอริทึมที่ฉันพยายามทำ โดยทั่วไปฉันมีสองรายการและต้องการรับชุดค่าผสมทั้งหมดของสองรายการ ฉันอาจจะอธิบายไม่ถูกต้องดังนั้นนี่เป็นตัวอย่าง name = 'a', 'b' number = 1, 2 ผลลัพธ์ในกรณีนี้จะเป็น: 1. A1 B2 2. B1 A2 ส่วนที่ยุ่งยากคือฉันอาจมีรายการในตัวแปร“ ชื่อ” มากกว่ารายการในตัวแปร“ หมายเลข” (หมายเลขจะเท่ากับหรือน้อยกว่าตัวแปรชื่อเสมอ) ฉันสับสนวิธีการรวมกันทั้งหมด (ซ้อนกันสำหรับวง?) และยิ่งสับสนในตรรกะเพื่อเลื่อนรายการในตัวแปรชื่อในกรณีที่มีรายการในชื่อมากกว่าพวกเขาอยู่ในรายการหมายเลข ฉันไม่ใช่โปรแกรมเมอร์ที่ดีที่สุด แต่คิดว่าฉันจะให้มันยิงถ้ามีคนสามารถช่วยฉันชี้แจงตรรกะ / algoriythm เพื่อให้บรรลุนี้ ดังนั้นฉันเพิ่งจะติดอยู่บนที่ซ้อนกันสำหรับลูป ปรับปรุง: นี่คือผลลัพธ์ที่มี 3 ตัวแปรและตัวเลข 2 ตัว: name = 'a', 'b', 'c' number = 1, 2 เอาท์พุท: 1. A1 …

30
รับอาร์เรย์ของตัวเลขส่งคืนอาร์เรย์ของผลิตภัณฑ์ของตัวเลขอื่น ๆ ทั้งหมด (ไม่มีการหาร)
ฉันถูกถามคำถามนี้ในการสัมภาษณ์งานและฉันต้องการทราบว่าคนอื่นจะแก้ไขได้อย่างไร ฉันรู้สึกสบายใจกับ Java ที่สุด แต่ยินดีต้อนรับโซลูชันในภาษาอื่น รับอาร์เรย์ของตัวเลขnumsกลับอาร์เรย์ของตัวเลขproductsที่เป็นผลิตภัณฑ์ของทั้งหมดproducts[i]nums[j], j != i Input : [1, 2, 3, 4, 5] Output: [(2*3*4*5), (1*3*4*5), (1*2*4*5), (1*2*3*5), (1*2*3*4)] = [120, 60, 40, 30, 24] คุณต้องทำสิ่งนี้O(N)โดยไม่ใช้การหาร
186 arrays  algorithm 

15
การหาค่า max / min ในอาร์เรย์ของ primitives โดยใช้ Java
การเขียนฟังก์ชันเพื่อกำหนดค่า min / max ในอาเรย์นั้นเป็นเรื่องเล็กน้อยเช่น: /** * * @param chars * @return the max value in the array of chars */ private static int maxValue(char[] chars) { int max = chars[0]; for (int ktr = 0; ktr < chars.length; ktr++) { if (chars[ktr] > max) { max = chars[ktr]; } …

27
อัลกอริทึมในการค้นหาตัวประกอบสำคัญที่สุดของตัวเลข
วิธีที่ดีที่สุดในการคำนวณปัจจัยหลักที่ใหญ่ที่สุดของจำนวนคืออะไร? ฉันคิดว่ามีประสิทธิภาพมากที่สุดจะเป็นดังต่อไปนี้: ค้นหาจำนวนเฉพาะต่ำสุดที่หารได้อย่างหมดจด ตรวจสอบว่าผลลัพธ์ของการหารเป็นเรื่องสำคัญหรือไม่ ถ้าไม่พบต่อไปต่ำสุด ไปที่ 2 ฉันคิดว่ามันง่ายกว่าที่จะคำนวณปัจจัยสำคัญเล็ก ๆ มันเกี่ยวกับใช่มั้ย ฉันควรมองหาวิธีอื่นใด แก้ไข: ตอนนี้ฉันรู้แล้วว่าวิธีการของฉันไร้ประโยชน์หากมีมากกว่า 2 ปัจจัยหลักในการเล่นตั้งแต่ขั้นตอนที่ 2 ล้มเหลวเมื่อผลลัพธ์เป็นผลงานของสองช่วงเวลาอื่นดังนั้นจึงจำเป็นต้องมีขั้นตอนวิธีแบบเรียกซ้ำ แก้ไขอีกครั้ง: และตอนนี้ฉันรู้แล้วว่าวิธีนี้ยังใช้งานได้เพราะตัวเลขสำคัญที่พบล่าสุดจะต้องเป็นเลขที่สูงที่สุดดังนั้นการทดสอบเพิ่มเติมเกี่ยวกับผลลัพธ์ที่ไม่ได้เป็นนายกจากขั้นตอนที่ 2 จะส่งผลให้นายกที่เล็กลง

14
อัลกอริทึมเร็วที่สุดในการค้นหาหมายเลขเฉพาะคืออะไร
อัลกอริทึมที่เร็วที่สุดในการค้นหาหมายเลขเฉพาะด้วย C ++ คืออะไร ฉันใช้อัลกอริทึมของตะแกรง แต่ฉันยังต้องการให้เร็วขึ้น!
183 c++  algorithm  primes 

11
วิธีที่ดีที่สุดในการคำนวณหัวข้อหรือแท็กมีแนวโน้มคืออะไร
เว็บไซต์หลายแห่งมีสถิติเช่น "หัวข้อที่ร้อนแรงที่สุดใน 24 ชั่วโมงที่ผ่านมา" ตัวอย่างเช่น Topix.com แสดงสิ่งนี้ในส่วน "แนวโน้มข่าว" ที่นั่นคุณสามารถดูหัวข้อที่มีจำนวนการกล่าวถึงที่เติบโตเร็วที่สุด ฉันต้องการคำนวณ "Buzz" สำหรับหัวข้อด้วย ฉันจะทำสิ่งนี้ได้อย่างไร อัลกอริทึมควรน้ำหนักหัวข้อที่ร้อนน้อยกว่าเสมอ หัวข้อที่ปกติ (เกือบ) ไม่มีใครพูดถึงควรเป็นหัวข้อที่ร้อนแรงที่สุด Google เสนอ "แนวโน้มร้อนแรง", topix.com แสดง "หัวข้อน่าสนใจ", fav.or.it แสดง "แนวโน้มคำหลัก" - บริการทั้งหมดมีสิ่งหนึ่งที่เหมือนกัน: พวกเขาจะแสดงเฉพาะแนวโน้มที่กำลังมาถึงซึ่งกำลังร้อนแรงอย่างผิดปกติในขณะนี้ คำเช่น "Britney Spears", "weather" หรือ "Paris Hilton" จะไม่ปรากฏในรายการเหล่านี้เพราะพวกเขามักจะร้อนและบ่อยครั้ง บทความนี้เรียกสิ่งนี้ว่า "ปัญหาของ Britney Spears" คำถามของฉัน: คุณจะเขียนอัลกอริทึมหรือใช้วิธีที่มีอยู่เพื่อแก้ปัญหานี้ได้อย่างไร มีรายการที่มีคำค้นหาใน 24 ชั่วโมงล่าสุดอัลกอริทึมควรแสดง 10 สุด (ตัวอย่าง) สุดร้อนแรง …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.