คำถามติดแท็ก array-manipulation

การแข่งขันเพื่อแก้ปัญหาเฉพาะผ่านการใช้งานและการจัดการของอาร์เรย์

2
ตีความ Kipple!
บทนำ Kippleเป็นภาษาการเขียนโปรแกรมแบบกองซ้อนซึ่งเป็นความลับที่คิดค้นโดย Rune Berg ในเดือนมีนาคม 2003 Kipple มี 27 กอง 4 ตัวดำเนินการและโครงสร้างการควบคุม สแต็ค สแต็กถูกตั้งชื่อa- zและมีจำนวนเต็ม 32 บิต นอกจากนี้ยังมีสแต็กพิเศษ@เพื่อให้หมายเลขเอาต์พุตสะดวกยิ่งขึ้น เมื่อตัวเลขถูกส่งเข้าสู่@ค่า ASCII ของตัวเลขนั้นจะถูกผลักเข้าไปแทน (ตัวอย่างเช่นหากคุณกด 12 ถึง@จะได้ 49 และ 50 @แทน) อินพุตถูกส่งไปยังอินพุตสแต็กiก่อนที่โปรแกรมจะถูกดำเนินการ ล่ามจะถามหาค่าที่จะจัดเก็บiก่อนดำเนินการ หลังจากการดำเนินการเสร็จสิ้นสิ่งใดในเอาท์พุทสแต็คoจะถูกตอกไปยังเอาท์พุทเป็นตัวอักษร ASCII เนื่องจากนี่เป็นเพียงกลไก IO ของ Kipple เท่านั้นการโต้ตอบกับโปรแกรม Kipple จึงเป็นไปไม่ได้ ผู้ประกอบการ ตัวถูกดำเนินการเป็นทั้งตัวระบุสแต็กหรือจำนวนเต็ม 32 บิตลงนาม กด: >หรือ< ไวยากรณ์: Operand>StackIndentifierหรือStackIndentifier<Operand ตัวดำเนินการพุชนำตัวถูกดำเนินการไปทางซ้ายแล้วผลักไปยังสแต็กที่ระบุ ตัวอย่างเช่น12>aจะส่งค่า 12 …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

8
จัดเรียงอาร์เรย์อัตโนมัติ
ทุกคนรักรายการซ้อนกัน! อย่างไรก็ตามบางครั้งมันก็ยากที่จะสร้างรายการซ้อนกัน คุณต้องตัดสินใจว่าคุณต้องการทำรังให้ลึกกว่านี้หรือถ้าคุณต้องการทำรังให้ตื้นขึ้น ดังนั้นสำหรับความท้าทายของคุณคุณต้อง "Autonest" รายการ หากต้องการรายการอัตโนมัติให้เปรียบเทียบรายการทุกคู่ในรายการ หากรายการที่สองมีขนาดเล็กกว่าให้แยกองค์ประกอบทั้งสองโดยแทรกการปิดและเปิดวงเล็บระหว่างพวกเขาเช่นนี้ } { {2 , 1} ตัวอย่างเช่น{2, 1}กลายเป็น{2}, {1}และ{3, 2, 1}กลายเป็น{3}, {2}, {1} หากรายการที่สองเหมือนกันก็ไม่มีอะไรเปลี่ยนแปลง ยกตัวอย่างเช่น{1, 1, 1}ยังคงเหมือนเดิมและจะกลายเป็น{2, 1, 1, 1}{2}, {1, 1, 1} หากรายการที่สองมีขนาดใหญ่กว่าให้ซ้อนทุกรายการดังต่อไปนี้หนึ่งระดับ ตัวอย่างเช่น{1, 2}จะกลายเป็น{1, {2}}และ{1, 2, 3}จะกลายเป็น{1, {2, {3}}} ความท้าทาย คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในรายการตัวเลขและส่งกลับรายการเดียวกันหลังจากที่ถูก autonested ใช้อินพุตนี้ในรูปแบบรายการภาษาดั้งเดิมของคุณ (หรือตัวเลือกที่ใกล้เคียงที่สุด) หรือเป็นสตริง คุณไม่จำเป็นต้องใช้เครื่องมือจัดฟันแบบหยิกอย่างที่เคยทำในตัวอย่าง คุณสามารถใช้วงเล็บประเภทใดก็ได้ที่เป็นธรรมชาติที่สุดในภาษาของคุณตราบใดที่มันสอดคล้องกัน คุณสามารถสรุปได้อย่างปลอดภัยว่ารายการจะมีจำนวนเต็มเท่านั้น คุณสามารถสมมติว่ารายการจะมีตัวเลขอย่างน้อย 2 ตัว …

9
N-chotomize รายการ
รับรายการจำนวนเต็มLและจำนวนเต็มNเอาต์พุตแยกLในNรายการย่อยที่มีความยาวเท่ากัน ความยาวไม่สามารถหารได้ หากNไม่แบ่งความยาวของLมันก็เป็นไปไม่ได้ที่รายการย่อยทั้งหมดจะมีความยาวเท่ากัน ในกรณีใด ๆ รายการย่อยสุดท้ายของเอาท์พุทคือรายการที่ปรับความยาวเพื่อให้มีส่วนที่เหลือของรายการ ซึ่งหมายความว่ารายการย่อยทั้งหมดของLยกเว้นรายการสุดท้ายควรมีความยาวlength(L) // Nโดยที่การ//หารแบบพื้น (เช่น3//2 = 1) กฎบางอย่าง L สามารถว่างเปล่า N >= 1. คุณสามารถใช้บิวท์อินที่คุณต้องการ คุณสามารถรับอินพุตSTDINเป็นอาร์กิวเมนต์ของฟังก์ชันหรืออะไรก็ได้ที่คล้ายกัน คุณสามารถพิมพ์ผลลัพธ์ไปที่STDOUTส่งคืนจากฟังก์ชันหรือสิ่งอื่นที่คล้ายคลึงกัน คุณสามารถเลือกรูปแบบใดก็ได้สำหรับรายการและจำนวนเต็มตราบเท่าที่เป็นการแสดงรายการและจำนวนเต็มอย่างเป็นธรรมชาติที่สุดในภาษาของคุณ กรณีทดสอบ Input: [1,2,3,4], 2 Output: [[1,2],[3,4]] Input: [-1,-2,3,4,-5], 2 Output: [[-1,-2],[3,4,-5]] Input: [1,2,3,4], 1 Output: [[1,2,3,4]] Input: [4,8,15,16,23,42], 5 Output: [[4],[8],[15],[16],[23,42]] Input: [4,8,15,16,23,42], 7 Output: [[],[],[],[],[],[],[4,8,15,16,23,42]] Input: [2,3,5,7,11,13,17,19,23], …

4
ช่วยคำนวณตัวแทนของคุณอีกครั้ง!
สองสามเดือนที่ผ่านมาเราได้อภิปรายเกี่ยวกับเมตาดาต้าเกี่ยวกับการเพิ่มชื่อเสียงที่ได้รับจากการโหวตคำถาม นี่คือพื้นฐานของระบบชื่อเสียงของเราในปัจจุบันสำหรับการลงคะแนน: 1 การโหวตคำถามUมีค่า 5 ชื่อเสียง คำตอบ upvote uมีค่า 10 ชื่อเสียง คำถามหรือคำตอบ downvote dมีค่า -2 ชื่อเสียง มีข้อเสนอแนะที่แตกต่างกันมากมายสำหรับระบบใหม่ แต่ปัจจุบันได้รับความนิยมมากที่สุดเหมือนกับข้างต้น แต่มี upvotes คำถามปรับสัดส่วนเป็น +10 ตัวแทน ความท้าทายนี้เกี่ยวกับการคำนวณจำนวนตัวแทนที่คุณจะได้รับหากใช้ระบบนี้ ลองดูตัวอย่าง หากกิจกรรมการลงคะแนนเป็นUUUUuuuuUUUUUduuudUUเช่นนั้นคุณจะได้รับ 121 ภายใต้ระบบปัจจุบัน: U x 4 x 5 = 20 = 20 u x 4 x 10 = 40 = 60 U x 5 x …

12
เล่นเกมกำจัด
บทนำ ในความท้าทายนี้งานของคุณคือจำลองเกมการกำจัดบางประเภท ในเกมผู้เข้าร่วมยืนเป็นวงกลมและทุกคนถือเลขจำนวนเต็ม ในแต่ละรอบของเกมผู้เข้าร่วมทุกคนจะได้คะแนนจากคนที่nก้าวออกไปถ้าnเป็นตัวเลขที่พวกเขาถืออยู่ ถ้าnเป็นบวกพวกเขานับไปทางขวาหากnเป็นลบพวกเขานับทางซ้ายและถ้าnเป็นศูนย์พวกเขาจะชี้ไปที่ตัวเอง ผู้เข้าร่วมทุกคนที่มีคนชี้ไปที่พวกเขาจะถูกกำจัดและออกจากวงกลม จบรอบนี้ รอบต่อไปจนกว่าจะไม่มีผู้เข้าร่วมเหลือ อินพุต ข้อมูลที่คุณป้อนเป็นรายการจำนวนเต็มที่ไม่ว่างเปล่าในรูปแบบที่เหมาะสม มันหมายถึงตัวเลขที่ผู้เข้าร่วมของเกมจะถือ เอาท์พุต ผลลัพธ์ของคุณคือจำนวนรอบที่ใช้จนกว่าเกมจะจบลง ตัวอย่าง [3,1,-2,0,8]พิจารณารายชื่อการป้อนข้อมูล ในรอบแรกสิ่งต่อไปนี้จะเกิดขึ้น: คนถือจุดที่เหมาะสมในการถือครองคน30 คนถือจุดที่เหมาะสมในการถือครองคน1-2 คนที่ถือครองจุดซ้ายที่ถือครองคน-23 คนที่ถือ0คะแนนในตัวเอง บุคคลที่ถือ8คะแนนอยู่ที่บุคคลที่ถือ-2(รายการแสดงถึงวงกลมดังนั้นจึงล้อมรอบที่ปลาย) ซึ่งหมายความว่า0, -2และจะถูกตัดออกเพื่อให้รอบที่สองจะทำกับรายการ3 [1,8]ที่นี่1ชี้ไปที่8และ8ชี้ไปที่ตัวเองจึง8ถูกกำจัด รอบที่สามจะทำกับรายการ[1]ที่1เพียงแค่ชี้ที่ตัวเองและจะถูกกำจัดออก 3มันต้องใช้เวลาสามรอบเพื่อกำจัดผู้เข้าร่วมทั้งหมดเพื่อการส่งออกที่ถูกต้องคือ กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ [3] -> 1 [0,0,0] -> 1 [-2,-1,0,1,2,3,4,5,6,7] -> 2 [5,5,5,6,6,6] -> 2 [3,-7,-13,18,-10,8] -> 2 [-7,5,1,-5,-13,-10,9] -> 2 [4,20,19,16,8,-9,-14,-2,17,7,2,-2,10,0,18,-5,-5,20] -> …

14
Kolmogorov ที่ไม่มีความซับซ้อน (-Smirnov)
ในสถิติบางครั้งมันมีประโยชน์ที่จะทราบว่าตัวอย่างข้อมูลสองตัวอย่างมาจากการแจกแจงต้นแบบเดียวกัน วิธีหนึ่งที่จะทำเช่นนี้คือการใช้สองตัวอย่างทดสอบ Kolmogorov-Smirnov งานของคุณคือการเขียนโปรแกรมที่อ่านในอาร์เรย์จำนวนเต็มสองตัวที่ไม่ได้ลบและคำนวณค่าสถิติหลักที่ใช้ในการทดสอบ รับอาร์เรย์Aและจำนวนจริงx, กำหนดฟังก์ชันการแจกแจงFโดย F(A,x) = (#number of elements in A less than or equal to x)/(#number of elements in A) รับสองอาร์เรย์A1และA2กำหนด D(x) = |F(A1, x) - F(A2, x)| ทั้งสองตัวอย่าง Kolmogorov-Smirnov สถิติเป็นค่าสูงสุดของมากกว่าจริงทั้งหมดDx ตัวอย่าง A1 = [1, 2, 1, 4, 3, 6] A2 = [3, 4, 5, 4] แล้ว: …

30
Chunk + ระบุรายการตัวเลข
ฉันมีรายการเลขทศนิยม: 4, 4, 4, 7, 7, 9, 9, 9, 9, 2, 2, 2, 4, 4 รายการเลขฐานสิบเป็นที่รู้จักกันในชื่อรายการ เราสามารถสร้าง "ชิ้นส่วน" จากรายการเหล่านี้โดยจัดกลุ่มหมายเลขที่เหมือนกันและติดกัน ฉันต้องการกำหนดหมายเลขที่ไม่ซ้ำกันให้แต่ละอันเริ่มต้นจาก 1 และเพิ่มขึ้น 1 ตามลำดับที่จะปรากฏในรายการต้นฉบับ ดังนั้นเอาต์พุตสำหรับตัวอย่างที่กำหนดจะมีลักษณะดังนี้: 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5 รูปแบบอินพุต รายการของตัวเลข (0-9) คุณสามารถใช้ภาษาในตัวเพื่ออ่านรายการนี้ได้ตามต้องการ การเข้ารหัส: ASCII รูปแบบเอาต์พุต ชุดตัวเลขทศนิยมคั่นด้วยตัวคั่น โปรแกรมของคุณต้องใช้ตัวคั่นเดียวกันเสมอ ตัวคั่นต้องยาวกว่า 0 …

6
การรวมกลุ่มตามความคิดริเริ่ม
บทนำ: ฉันรวบรวมปริศนาคดเคี้ยว ส่วนใหญ่ผลิตและจำหน่ายโดย บริษัท จีน บริษัท ที่มีชื่อเสียงส่วนใหญ่ขออนุญาตจากผู้ออกแบบตัวต่อเพื่อผลิตงานออกแบบและทำงานร่วมกันเพื่อนำไปสู่ผลิตภัณฑ์ในตลาด ในกรณีนี้ผู้ออกแบบเกมปริศนานั้นมีความสุขและภูมิใจมากที่หนึ่งในปริศนาของพวกเขาเข้าสู่ตลาด อย่างไรก็ตามยังมี บริษัท ของจีนที่สร้างปริศนาเลียนแบบ การลอกเลียนแบบเหล่านี้มีทั้งการออกแบบที่ใช้โดยไม่ได้รับอนุญาตจากผู้สร้างดั้งเดิมหรือเป็นสำเนาที่มีคุณภาพต่ำกว่าของปริศนาที่มีอยู่เดิม ท้าทาย: เราจะพิจารณาความสามารถในการสร้างสรรค์ของตัวเลขที่ 'ปล่อย' ตามลำดับเฉพาะ (จากซ้ายไปขวา† ) รับรายการจำนวนเต็มจัดกลุ่มและส่งออกตามความคิดริเริ่ม ความคิดริเริ่มของตัวเลขถูกกำหนดอย่างไร? ตัวเลขซ้ำซ้อนกับตัวเลขก่อนหน้าหรือไม่ กลุ่ม (ต้นฉบับน้อยที่สุด) โดยที่กลุ่มต่อท้ายอยู่หลังจากกลุ่มอื่น ๆ ทั้งหมดX+ 1X+1X+1X+ 1X+1X+1 เป็นตัวเลขที่ซ้ำกันของตัวเลขก่อนหน้า แต่เป็นค่าลบแทน (เช่นหมายเลขเดิมคือแต่ตอนนี้ ; หรือกลับกัน) กลุ่มXnnn- n-n-nXXX สามารถสร้างค่าสัมบูรณ์ของตัวเลขโดยการต่อตัวเลขสัมบูรณ์ก่อนหน้าหนึ่งหมายเลขขึ้นไปและมันไม่ได้เป็นส่วนหนึ่งของกลุ่มที่กล่าวถึงก่อนหน้านี้หรือหรือไม่? กลุ่มโดยที่คือจำนวนตัวเลขที่แตกต่างกันที่ใช้ในการต่อข้อมูล (และ )X+ 1X+1X+1XXXX- NX-ยังไม่มีข้อความX-Nยังไม่มีข้อความยังไม่มีข้อความNยังไม่มีข้อความ≥ 1ยังไม่มีข้อความ≥1N\geq1 จำนวนไม่เหมาะสมกับกลุ่มใด ๆ ข้างต้นหรือไม่ดังนั้นจึงมีความเป็นเอกลักษณ์โดยสิ้นเชิงหรือไม่? กลุ่ม (ดั้งเดิมมากที่สุด) ซึ่งนำหน้ากลุ่มอื่นทั้งหมด111 นี่อาจฟังดูไม่ชัดดังนั้นนี่เป็นตัวอย่างทีละขั้นตอน : …

2
ล่ามสำหรับทฤษฎีจำนวนโมดูโล n
ประโยคของทฤษฎีจำนวน (สำหรับวัตถุประสงค์ของเรา) เป็นลำดับของสัญลักษณ์ต่อไปนี้: 0และ'(ตัวตายตัวแทน) - ตัวตายตัวแทนหมายถึง+1ดังนั้น0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(เพิ่มเติม) และ*(การคูณ) = (เท่ากับ) (และ)(วงเล็บ) ตัวดำเนินการเชิงตรรกะnand( a nand bคือnot (a and b)) forall (ปริมาณสากล) v0, v1, v2ฯลฯ (ตัวแปร) นี่คือตัวอย่างของประโยค: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) นี่not …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

5
Centrosymmetrization น้อยที่สุด
ที่เกี่ยวข้องกัน วัตถุประสงค์:รับเมทริกซ์ของจำนวนเต็มบวกให้เอาท์พุตเมทริกซ์สมมาตรที่เล็กที่สุดซึ่งมี (เมทริกซ์นี้อาจมีจำนวนเต็มบวกที่ไม่เป็นบวก)เอ็มMMMMMM เมทริกซ์ centrosymmetric เป็นเมทริกซ์จตุรัสที่มีสมมาตรการหมุนของคำสั่งที่ 2 นั่นคือเมทริกซ์ยังคงเหมือนเดิมหลังจากหมุนสองครั้ง ยกตัวอย่างเช่นเมทริกซ์แบบสมมาตรมีองค์ประกอบด้านบนซ้ายเหมือนกับด้านล่างขวาและองค์ประกอบด้านบนตรงกลางเหมือนกับด้านล่างตรงกลาง ภาพข้อมูลที่มีประโยชน์สามารถพบได้ที่นี่ เพิ่มเติมอย่างเป็นทางการได้รับเมทริกซ์ผลิตเมทริกซ์จัตุรัสดังกล่าวว่าเป็น centrosymmetric และและไม่มีอื่นใดอีกตารางเมทริกซ์ดังกล่าวว่าNN N M ⊆ N K ติ่มซำK &lt; dim NMMMNNNNNNM⊆NM⊆NM\subseteq NKKKdimK&lt;dimNdim⁡K&lt;dim⁡N\dim K<\dim N AAAคือเซตย่อยของ (สัญกรณ์: ) หากแต่ละค่าปรากฏที่ดัชนีสำหรับคู่ของจำนวนเต็มบางคู่นายก)BBBA⊆BA⊆BA\subseteq BAi,jAi,jA_{i,j}Bi+i′,j+j′Bi+i′,j+j′B_{i+i^\prime,j+j^\prime}(i′,j′)(i′,j′)(i^\prime, j^\prime) หมายเหตุ : เมทริกซ์บางตัวมีวิธีแก้ปัญหาหลายอย่าง (เช่น[[3,3],[1,2]]การแก้ไขตาม[[2,1,0],[3,3,3],[0,1,2]]หรือ[[3,3,3],[1,2,1],[3,3,3]]); คุณต้องแสดงผลลัพธ์อย่างน้อยหนึ่งในโซลูชันที่ถูกต้อง กรณีทดสอบ input example output [[1, 2, 3], [4, 5, 6]] [[1, 2, 3, 0], …

13
เป็นคนแรกเป็นคนแรก
ท้าทาย งานง่าย รับอาร์เรย์และค่าแรกและสุดท้าย: คืนค่าแรกของสุดท้ายหลังจากที่แรกและสุดท้ายของก่อนก่อนที่สุดท้าย หรือเพียงแค่: รับอาร์เรย์, var1, var2 อาร์เรย์ตัวอย่าง: [var2,, var1,, var2,, var2, var1, var2,] กลับ: ดัชนีของ var2 แรกทางด้านขวาของ var1 แรกที่ปรากฏในอาร์เรย์ [var2,, first var1 ,, var2 แรก , var2 ที่สอง, var1, var2 ที่สาม] ดัชนีของ var1 แรกทางด้านซ้ายของ var2 ล่าสุดที่ปรากฏในอาร์เรย์ [var2,, var1 ที่สอง,, var2,, var2, var1 แรก , var2 ล่าสุด ,] อินพุต …

12
ผลรวมของเมทริกซ์ที่จำลองแบบแล้ว
รับรายการตัวเลข[ a 1 a 2 ... a n ]คำนวณผลรวมของเมทริกซ์ทั้งหมดAᵢโดยที่Aᵢถูกนิยามดังนี้ ( mคือค่าสูงสุดของaᵢทั้งหมด): 1 2 ⋯ (i-1) i (i+1) ⋯ n +---------------------------- 1 | 0 0 ⋯ 0 aᵢ aᵢ ⋯ aᵢ 2 | 0 0 ⋯ 0 aᵢ aᵢ ⋯ aᵢ . . . . . . . . . . …

2
ค้นหาเพื่อนบ้านของฉัน
อินพุตประกอบด้วยแถวiพร้อมข้อมูลเพื่อนบ้าน แต่ละฉันTHแถวมี 4 ค่าคิดเป็นเพื่อนบ้านของฉันไปยังทิศตะวันตกเฉียงเหนือ , ภาคตะวันออก , ภาคใต้และตะวันตกทิศทางตามลำดับ ดังนั้นแต่ละค่าหมายถึงเพื่อนบ้านที่ทิศทางที่กำหนดของที่ฉันTHแถวเริ่มจากแถวที่ 1 และสามารถไปได้ถึง 65,535 แถว 0ค่าบ่งชี้ไปในทิศทางเพื่อนบ้านว่าไม่มี ตัวอย่างเช่นถ้าแถวแรกคือ "0 2 3 10" มันหมายความว่าฉันเพื่อนบ้านมีสามเพื่อนบ้านอื่น ๆ : ไม่มีใครไปทางทิศเหนือเพื่อนบ้าน2ไปทางทิศตะวันออกเพื่อนบ้าน3ไปทางทิศใต้และเพื่อนบ้าน10ไปทางทิศตะวันตก คุณต้องส่งออกอาเรย์ของเพื่อนบ้านเริ่มต้นจากค่าที่มากที่สุดไปทางตะวันตกเฉียงเหนือ แต่ละเพื่อนบ้านจะปรากฏเพียงครั้งเดียวที่ตำแหน่งของมันเมื่อเทียบกับคนอื่น ๆ ลองดูตัวอย่าง: การป้อนข้อมูล: 0 0 0 0 ไม่มีเพื่อนบ้าน (กรณีว่างเปล่า) เอาท์พุท: 1 การป้อนข้อมูล: 0 2 0 0 0 0 0 1 1 มีเพื่อนบ้าน 2 ทางด้านตะวันออก 2 …

7
นับอาร์เรย์ของช่วงเวลา
periodของสตริงเป็นที่ไม่ใช่ศูนย์การเปลี่ยนแปลงที่สั้นที่สุดเพื่อให้สตริงตรงกับตัวเองโดยไม่สนใจชิ้นส่วนใด ๆ ที่แขวนอยู่ ดังนั้นสำหรับตัวอย่างเช่นมีระยะเวลาabcabcab 3โดยการประชุมเราบอกว่าถ้าไม่มีการเปลี่ยนแปลงเช่นนั้นสตริงมีระยะเวลาเท่ากับความยาวของมัน ดังนั้นระยะเวลาของการabcdeเป็น5ระยะเวลาของการมี a1 ในแง่ที่เป็นทางการมากขึ้นช่วงเวลาของสตริงSคือขั้นต่ำi &gt; 0ดังนั้นS[1,n-i] == S[i+1,n](การจัดทำดัชนีจาก1) สำหรับสตริง S ของกำลังสองที่มีความยาวเราจะคำนวณระยะเวลาของคำนำหน้าทั้งหมดของกำลังสองยาว S = abcabcabตัวอย่างเช่นพิจารณา ช่วงเวลาที่เราจะคำนวณคือ: 'a', 1 'ab', 2 'abca', 3 'abcabcab', 3 [1, 2, 3, 3]เราจะอยู่ในความเป็นจริงเพียงแค่การส่งออกอาร์เรย์ของระยะเวลาที่เป็น สำหรับพลังบวกให้สองพิจารณาทั้งหมดสตริงไบนารีที่เป็นไปได้n Sโปรดจำไว้ว่าสตริงไบนารีเป็นเพียงสตริงของ1s และ0s ดังนั้นจึงมี2^nสตริงดังกล่าว (นั่นคือ2กำลังn) สำหรับแต่ละคนเราสามารถคำนวณช่วงเวลานี้ได้ ความท้าทายคือการเขียนโค้ดที่ใช้n(กำลังสอง) เป็นอินพุตและคำนวณจำนวนอาร์เรย์ที่แตกต่างกัน คำตอบสำหรับn = 1, 2, 4, 8, 16, 32, 64, 128คือ: 1, …

27
คู่ที่ไม่ได้สั่งซื้อทั้งหมดระหว่างองค์ประกอบของอาร์เรย์
งาน: ส่งคืนอาร์เรย์ที่มีคู่ที่เป็นไปได้ทั้งหมดระหว่างองค์ประกอบของอาร์เรย์ ตัวอย่าง จากผลตอบแทนa=["a", "b", "c", "d"];b=[["a","b"],["a","c"],["a","d"],["b","c"],["b","d"],["c","d"]] คู่สามารถจะอยู่ในลำดับใด ๆ ตราบเท่าที่อยู่รวมกันเป็นไปได้ทั้งหมดจะถูกรวมและเห็นได้ชัดว่าเป็นเหมือนกัน["b","d"]["d","b"] อินพุต [a-z]อาร์เรย์ขององค์ประกอบที่ไม่ซ้ำกันสตริงประกอบด้วยตัวอักษรจากชั้นเรียน เอาท์พุต อาร์เรย์ 2d ที่มีองค์ประกอบของอินพุตอาร์เรย์ที่เป็นไปได้ทั้งหมด กรณีทดสอบ input=["a","b","c"]; //output=[["a","b"],["a","c"],["b","c"]] input=["a","b","c","d","e"]; //output=[["a","b"],["a","c"],["a","d"],["a","e"],["b","c"],["b","d"],["b","e"],["c","d"],["c","e"],["d","e"]] หมายเหตุ:ฉันไม่พบสิ่งที่เหมือนกันสำหรับความท้าทายนี้ หากมีอยู่แจ้งเตือนฉันด้วยความคิดเห็นเพื่อวางคำถาม

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