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

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

6
Quandle Quandary Episode I: การระบุ Quandles จำกัด
เขียนโปรแกรมที่จะตรวจสอบว่าเมทริกซ์ที่กำหนดแสดงถึงความไม่แน่ใจ quandleเป็นชุดพร้อมเดียว (ไม่ใช่การสลับที่ไม่เชื่อมโยง) การดำเนินงาน◃ซึ่งเชื่อฟังหลักการต่อไปนี้: การดำเนินการถูกปิดซึ่งหมายความว่าa◃b = cจะเป็นองค์ประกอบของชุดหากaและbเป็นองค์ประกอบของชุดเสมอ (a◃b)◃c = (a◃c)◃(b◃c)การดำเนินการเป็นขวาตนเองจำหน่าย: การดำเนินการแบ่งออกได้อย่างถูกต้อง: สำหรับคู่ที่เลือกaและbมีความเป็นหนึ่งเดียวcที่c◃a = b การดำเนินการ idempotent: a◃a = a quandle ที่ จำกัด สามารถแสดงเป็นเมทริกซ์จตุรัส ด้านล่างนี้เป็นตัวอย่างของการสั่งซื้อ 5-quandle ( แหล่งที่มา ) 0 0 1 1 1 1 1 0 0 0 3 4 2 4 3 4 2 4 3 2 2 3 …

30
ตรวจสอบว่าอาร์เรย์มีสิ่งอื่นที่ไม่ใช่ 2 หรือไม่
ใช้อาร์เรย์ซึ่งประกอบด้วยตัวเลขหรืออาร์เรย์ผลลัพธ์ถ้ามันประกอบด้วย2s เท่านั้น ผลลัพธ์ควรเป็นค่าจริงหรือเท็จ (ขออภัยหากนี่ขัดคำตอบ) กรณีทดสอบความจริง [2] [2,2] [[2],[2,2],2] [] [[],[]] กรณีทดสอบ Falsey [1] [22] [2,2,2,1] [[1,2],2] ห้ามมีช่องโหว่มาตรฐาน ใช้กฎIO เริ่มต้น Code-golf, Fewest bytes ชนะ!

20
ค้นหา "ขนาดซ้ำ" ของรายการ
แรงบันดาลใจจากค้นหา“ขนาดยังไม่ได้เปิด” ของรายการ กำหนดขนาดแบบเรียกซ้ำRSของรายการที่ไม่มีรายการตามความยาว (จำนวนรายการที่มี) และขนาดแบบเรียกซ้ำของรายการที่มีรายการใด ๆ เป็นผลรวมของความยาวและขนาดแบบเรียกซ้ำของรายการเหล่านั้น ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออกขนาดซ้ำของรายการที่กำหนดในไม่กี่ไบต์เท่าที่จะทำได้ อินพุตเป็นรายการและอาจมีตัวเลขสตริง (หากภาษาของคุณมี) และรายการที่คล้ายกัน ตัวอย่างเช่น: RS([]) = 0 RS([[]]) = 1 RS([4, 5, 6]) = 3 RS(["four", "five", "six"]) = 3 RS(["[[[[]]]]", "[][][][][]", "][][[[]]][]["]) = 3 RS([[4, 5, 6]]) = 4 RS([["four", "five", "six"]]) = 4 RS([["[[[[]]]]", "[][][][][]", "][][[[]]][]["]]) = 4 RS([[4], …

29
ค้นหาความเบี่ยงเบนสูงสุด
ปัญหานี้เกิดจาก "แรงบันดาลใจ" จากคำถามที่เคยถูกถามในQuora (ไม่ใช่สำหรับการตีกอล์ฟ) ฉันแค่อยากทำให้มันท้าทายสำหรับพวกคุณ (และการส่งปัญหาแรกของฉันที่นี่) กำหนดอาร์เรย์ขององค์ประกอบจำนวนเต็มvและจำนวนเต็มd(เราสมมติว่า d ต่ำกว่าหรือเท่ากับความยาวของอาร์เรย์) ให้พิจารณาลำดับทั้งหมดของdองค์ประกอบที่ต่อเนื่องกันในอาร์เรย์ สำหรับแต่ละลำดับคำนวณความแตกต่างระหว่างค่าสูงสุดและต่ำสุดขององค์ประกอบในลำดับนั้นและตั้งชื่อมันว่าส่วนเบี่ยงเบน งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่คำนวณค่าสูงสุดระหว่างความเบี่ยงเบนทั้งหมดของลำดับทั้งหมดที่พิจารณาข้างต้นและส่งคืนหรือส่งออกค่านั้น ตัวอย่างที่ทำงานผ่าน: v: (6,9,4,7,4,1) d: 3 The sequences of length 3 are: 6,9,4 with deviation 5 9,4,7 with deviation 5 4,7,4 with deviation 3 7,4,1 with deviation 6 Thus the maximal deviation is 6, so the output is 6. …

18
การเรียงลำดับหลายคีย์
กำหนดรายการดัชนีและรายการเลขจำนวนเต็มศูนย์หรือมากกว่าให้เอาท์พุทรายการจำนวนเต็มเรียงตามลำดับจากน้อยไปมากโดยให้ความสำคัญกับคีย์จากอินพุตแรก ตัวอย่าง ปล่อยให้ปุ่มป้อนเข้า[1, 0, 2]และรายการจะถูกป้อน[[5, 3, 4], [6, 2, 1], [5, 2, 1]]เข้าไป รายการเหล่านั้นจะต้องเรียงลำดับตามองค์ประกอบที่สองจากนั้นองค์ประกอบแรกจากนั้นองค์ประกอบที่สามตามลำดับจากน้อยไปมาก: อันดับแรกเราจัดเรียงตามค่าที่ดัชนี1:[[6, 2, 1], [5, 2, 1], [5, 3, 4]] ต่อไปเราแยกความสัมพันธ์จากการเรียงลำดับแรกโดยใช้ค่าที่ดัชนี0:[[5, 2, 1], [6, 2, 1], [5, 3, 4]] ในที่สุดเราก็แยกความสัมพันธ์ที่เหลือกับ vlues ที่ index 2(นี่ไม่ได้เปลี่ยนแปลงอะไรเลยเพราะไม่มีความสัมพันธ์เหลืออยู่) รายละเอียด การเรียงลำดับมีความเสถียร: หากองค์ประกอบสองรายการเปรียบเทียบเท่ากันด้วยความเคารพต่อคีย์การเรียงลำดับที่กำหนดพวกเขาจะต้องอยู่ในลำดับสัมพัทธ์เดียวกันในผลลัพธ์ ตัวอย่างเช่นถ้าAและBมีความเท่าเทียมกันภายใต้คีย์การเรียงลำดับได้รับและการป้อนข้อมูลที่เป็น[..., A, ..., B, ...],Aต้องถูกวางไว้ก่อนBในการส่งออก คีย์การเรียงลำดับจะไม่อ้างอิงองค์ประกอบที่ไม่มีอยู่ในรายการอินพุตอย่างใดอย่างหนึ่ง จะไม่มีการเรียงลำดับคีย์ซ้ำ ดังนั้น,[1, 2, 1]ไม่ใช่รายการของคีย์การเรียงลำดับที่ถูกต้อง …

19
การนับจำนวนในฐานชีวมวล 62
ภารกิจคือการสร้างสตริงทั้งหมดจาก 'a' ถึง '999' รวมถึงตัวอักษรตัวพิมพ์ใหญ่เช่น: 'a', 'b', 'c' ... 'y', 'z', 'A', 'B', 'C' ... 'Y', 'Z', '0', '1', 2' ... '8', '9', 'aa', 'ab', 'ac' ... 'az', 'aA', 'aB' ... 'aZ', 'a0' ... 'a9', 'ba' และอื่น ๆ (เติมในช่องว่าง) โดยเริ่มจากสตริงว่าง การป้อนข้อมูล: จำนวนอักขระต่อเนื่องที่โปรแกรมต้องพิมพ์ถึง เอาท์พุท: อาร์เรย์ที่มีแต่ละสตริงหรือหนึ่งสตริงต่อหนึ่งบรรทัด ชี้แจง: ลำดับไม่สำคัญคุณสามารถพิมพ์ตัวอักษรตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กก่อนหากคุณต้องการ ผลลัพธ์สามารถคืนค่าได้ทุกประเภทไม่จำเป็นต้องเป็นอาร์เรย์โดยเฉพาะแม้ว่าฉันสงสัยว่าการพิมพ์ชุดค่าผสมทั้งหมดจะไม่เป็นวิธีที่ง่ายที่สุด อินพุตของ3จะพิมพ์สตริงทั้งหมดจาก'a'(หรือ'') ไปยัง'999'input อินพุต5สูงสุด'99999'และต่อไป

4
“ เสร็จงาน” โดยเร็วที่สุด
พื้นหลัง ลองนึกภาพสักครู่ว่าคุณมีงานที่น่าเบื่ออย่างเหลือเชื่อ ทุกเช้าคุณจะได้รับชุดของงานที่คุณควรทำงานในวันนั้น แต่ละงานมีระยะเวลาแน่นอนและเมื่อเริ่มต้นแล้วจะต้องทำให้สำเร็จในครั้งเดียว เจ้านายของคุณจะไม่ยอมเกียจคร้านดังนั้นถ้ามีงานที่คุณยังสามารถทำให้เสร็จก่อนกลับบ้านคุณจะต้องทำงานกับสิ่งใดสิ่งหนึ่ง (คุณสามารถเลือกได้) ในทางกลับกันถ้างานที่เหลืออยู่ทั้งหมดจะทำให้คุณต้องทำงานล่วงเวลาคุณจะต้องกลับบ้านก่อน! ดังนั้นเป้าหมายของคุณคือการลดระยะเวลาการทำงานของคุณให้สั้นที่สุดด้วยการกำหนดตารางเวลาที่ชาญฉลาด ความจริงแล้วสนุก: นี่เป็นหนึ่งในตัวแปรของปัญหาการจัดตารางเวลาขี้เกียจของระบบราชการและมันเป็นปัญหาที่ยาก ( แหล่งที่มา ) อินพุต คุณมีสองอินพุต: จำนวนของ "หน่วยเวลา" ในวันทำงานของคุณ (จำนวนเต็มบวกL) และการรวบรวมงาน (อาร์เรย์ที่ไม่ว่างของจำนวนเต็มบวกTแสดงถึงระยะเวลาของงาน) พวกเขาสามารถดำเนินการในลำดับใด ๆ และในรูปแบบที่เหมาะสม อาร์เรย์Tอาจจะมีงานที่มีระยะเวลามากกว่าแต่ก็รับประกันได้ว่าจะมีอย่างน้อยหนึ่งงานที่มีระยะเวลาที่มากที่สุดLL เอาท์พุต ตารางเวลาที่ถูกต้องเป็นส่วนหนึ่งของงานS ⊆ Tดังกล่าวที่sum(S) ≤ Lและงานที่ไม่ได้อยู่ในทุกS(multiplicities นับ) L - sum(S)มีระยะเวลาอย่างเคร่งครัดมากกว่า ผลลัพธ์ของคุณจะเป็นผลรวมที่น้อยที่สุดที่เป็นไปได้ของกำหนดการที่ถูกต้อง กล่าวอีกนัยหนึ่งคุณจะแสดงจำนวนหน่วยเวลาที่น้อยที่สุดที่คุณต้องทำงานในวันนี้ ตัวอย่าง พิจารณาอินพุต L = 9 T = [3,4,4,4,2,5] วิธีหนึ่งในการกำหนดวันของคุณคือ[4,4]: คุณทำงานสองอย่างให้เสร็จใน 8 หน่วยเวลาและเหลือ 1 …

4
ดึงแม่เหล็กในอาร์เรย์
พื้นหลัง ฉันมีแม่เหล็กที่ทรงพลังหนึ่งแถวและวัตถุโลหะหลายอันที่อยู่ระหว่างพวกมัน แม่เหล็กจะดึงมันไว้ที่ไหน อินพุต ข้อมูลที่คุณป้อนเป็นจำนวนเต็มจำนวนเต็มที่ไม่เป็นลบซึ่งจะมีอย่างน้อยหนึ่ง1รายการ คุณสามารถใช้รูปแบบที่เหมาะสม 0ของอาร์เรย์แทนพื้นที่ว่างเปล่าและ1s แทนแม่เหล็กถาวร ตัวเลขอื่น ๆ ทั้งหมดเป็นวัตถุโลหะซึ่งถูกดึงโดยแม่เหล็ก วัตถุทุกชิ้นจะถูกดึงเข้าหาแม่เหล็กที่ใกล้ที่สุด (หากมีการผูกกันวัตถุนั้นจะถูกดึงไปทางขวา) และมันจะเคลื่อนที่ไปในทิศทางนั้นจนกว่าจะชนกับแม่เหล็กหรือวัตถุอื่น ในที่สุดวัตถุทั้งหมดได้รวมตัวกันรอบ ๆ แม่เหล็ก ลำดับของวัตถุถูกเก็บรักษาไว้ เอาท์พุต เอาต์พุตของคุณคืออาร์เรย์ที่วัตถุทุกชิ้นถูกดึงใกล้กับแม่เหล็กที่ใกล้ที่สุดเท่าที่จะทำได้ ควรมีรูปแบบเดียวกันกับอินพุต ตัวอย่าง พิจารณาอาร์เรย์ [0,0,2,0,1,1,0,2,0,3,0,5,0,1,0] ซ้ายสุดได้รับการดึงต่อคู่แรกของแม่เหล็กเช่นเดียวกับครั้งที่สอง2 มีแม่เหล็กสี่ขั้นตอนไปในทั้งสองทิศทางจึงได้รับการดึงไปทางด้านขวา มันถูกดึงไปทางขวาและมันก็อยู่ระหว่างและแม่เหล็ก ผลลัพธ์ที่ถูกต้องคือ2353 [0,0,0,2,1,1,2,0,0,0,0,3,5,1,0] กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ [0,1,0] -> [0,1,0] [1,0,2,0,0,1,0] -> [1,2,0,0,0,1,0] [7,0,5,0,0,1,0] -> [0,0,0,7,5,1,0] [1,0,3,0,1,0,3,0,1] -> [1,0,0,3,1,0,0,3,1] [1,0,0,0,0,0,0,7,3] -> [1,7,3,0,0,0,0,0,0] [1,2,3,4,5,6,7,8,9,10,11,0,0,0,1] -> …

15
Diamondize a Matrix
รับเมทริกซ์เอาท์พุทเป็นตัวแทนของเมทริกซ์ที่องค์ประกอบด้านบนซ้ายอยู่ด้านบนการต่อต้านเส้นทแยงมุมคือแถวกลางและองค์ประกอบด้านล่างขวาอยู่ที่ด้านล่าง ตัวอย่างเช่นพิจารณาเมทริกซ์ต่อไปนี้: 1 2 3 4 5 6 7 8 9 เมทริกซ์รุ่นเพชรนี้คือ: 1 4 2 7 5 3 8 6 9 อินพุตและเอาต์พุต เมทริกซ์อินพุตจะได้รับเป็นรายการของรายการ (หรืออะไรก็ตามที่คล้ายกันในภาษาที่คุณเลือก) ผลลัพธ์จะเป็นรายการของรายการเช่นกัน เมทริกซ์จะมีจำนวนเต็มบวกเท่านั้น เมทริกซ์อินพุตไม่จำเป็นต้องเป็นจตุรัส เมทริกซ์อินพุตจะมีอย่างน้อย 1 × 1 กรณีทดสอบ Input: [[1]] Output: [[1]] Input: [[1,2],[3,4]] Output: [[1],[3,2],[4]] Input: [[1,2,3],[4,5,6]] Output: [[1],[4,2],[5,3],[6]] Input: [[11,2,5],[3,99,3],[4,8,15],[16,23,42]] Output: [[11],[3,2],[4,99,5],[16,8,3],[23,15],[42]] เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ

18
ศูนย์กลางของมวลจากรายการพิกัดและมวลของพวกมัน
นี่คือความท้าทายเช้าวันจันทร์อย่างรวดเร็ว ... เขียนฟังก์ชันหรือโปรแกรมด้วยจำนวนไบต์น้อยที่สุดที่: ใช้เป็นรายการของ[x,y]พิกัด ใช้เป็นรายการของ[x,y]มวลที่เกี่ยวข้องของพิกัด [xBar,yBar]ขาออกศูนย์คำนวณของมวลในรูปแบบของ บันทึก: สามารถป้อนข้อมูลในรูปแบบใดก็ได้ตราบใดที่มีการใช้อาร์เรย์ ศูนย์กลางของมวลสามารถคำนวณได้จากสูตรต่อไปนี้: ในภาษาอังกฤษธรรมดา ... ในการค้นหาxBarให้คูณแต่ละมวลด้วยพิกัด x ที่เกี่ยวข้องรวมรายการผลลัพธ์และหารด้วยผลรวมของมวลทั้งหมด หากต้องการค้นหาyBarให้คูณแต่ละมวลด้วยพิกัด y ที่เกี่ยวข้องรวมรายการผลลัพธ์และหารด้วยผลรวมของมวลทั้งหมด Python เล็กน้อยเช่น 2.7: def center(coord, mass): sumMass = float(reduce(lambda a, b: a+b, mass)) momentX = reduce(lambda m, x: m+x, (a*b for a, b in zip(mass, zip(*coord)[0]))) momentY = reduce(lambda m, y: m+y, (a*b …

2
โปรแกรมหมุนได้เอง 90 °
บทนำ เขียนโปรแกรมที่สมบูรณ์ซึ่งหมุนบล็อกสี่เหลี่ยมของอักขระ ASCII 90 องศาตามเข็มนาฬิกา เมื่อโปรแกรมหมุนตามเข็มนาฬิกา 90 องศามันจะหมุนบล็อกของอักขระ ASCII 90 ทวนเข็มนาฬิกา กฎระเบียบ คุณหลายคนไม่ได้ใช้บิวด์อินที่หมุนหรือเปลี่ยนเมทริกซ์ ตัวอย่างเช่นใน MATLAB / Octave rot90และผู้ประกอบการขนย้าย'ไม่ได้รับอนุญาต คุณต้องเขียนโปรแกรมทั้งหมดที่ใช้ STDIN และ STDOUT หรือโปรแกรมที่ใกล้เคียงที่สุด โปรแกรมของคุณจะต้องเป็นสี่เหลี่ยมและสมมติว่าอินพุตนั้นเป็นสี่เหลี่ยมเช่นกัน อินพุตและเอาต์พุตเป็นสตริงที่คั่นด้วยบรรทัดใหม่และจะไม่มีการขึ้นบรรทัดใหม่ เมื่อรันด้วยซอร์สโค้ดของมันเป็นอินพุตโปรแกรมของคุณจะต้องหมุนตัวเองตามเข็มนาฬิกา 90 องศา ผลลัพธ์จะต้องเป็นโปรแกรมที่สองในภาษาเดียวกันที่หมุนอินพุต 90 องศาทวนเข็มนาฬิกา เมื่อโปรแกรมที่หมุนได้รับซอร์สโค้ดของมันเป็นอินพุทก็ควรเอาท์พุทซอร์สโค้ดของโปรแกรมต้นฉบับ หมายเหตุ:ทั้งสองโปรแกรมจะต้องทำงานกับอินพุตใด ๆไม่ใช่แค่ซอร์สโค้ดของตัวเองดังนั้นจึงไม่อนุญาตให้ใช้หนึ่งอักขระ quine ตัวอย่าง สมมติว่าโปรแกรมต่อไปนี้เป็นโปรแกรมที่ถูกต้องซึ่งจะหมุนอินพุต 90 องศาในภาษาสมมุติฐาน ExampleLang ^f a2% 3 lk (^_^& v D8 $4 / เมื่อรันด้วยตัวเองเป็นอินพุทมันจะส่งออกโปรแกรมที่ถูกต้องอีกอันที่หมุนอินพุททวนเข็มนาฬิกา: …

9
ผลรวมในแต่ละมิติ
คุณได้รับอาร์เรย์จำนวนเต็มหลายมิติ แต่ละมิติมีขนาดคงที่ (เพื่อให้เป็นรูปสี่เหลี่ยมผืนผ้าเสมอถ้าเป็น 2D) โปรแกรมของคุณควรคำนวณผลรวมในแต่ละมิติและเพิ่มผลรวมเป็นรายการสุดท้ายใหม่ในมิตินั้น สมมติอินพุตและเอาต์พุตอาร์เรย์ A และ B และขนาดของมิติฉันของเป็น n ฉัน B จะมีขนาดเท่ากับ A และขนาดของมิติที่ฉันจะเป็น n i +1 B j 1 , j 2 , ... , j mคือผลรวมของ A k 1 , k 2 , ... , k mโดยที่: k i = j iหาก j i <= n …

27
เขียนล่ามสำหรับ *
งานง่าย เขียนล่ามภาษาที่* นี่คือลิงก์ที่ใหญ่กว่าไปยังวิกิ มีโปรแกรม * ที่ใช้ได้เพียงสามโปรแกรมเท่านั้น: * พิมพ์ "Hello World" * พิมพ์ตัวเลขสุ่มระหว่าง 0 ถึง 2,147,483,647 *+* ทำงานตลอดไป กรณีที่สามจะต้องเป็นวงไม่สิ้นสุดตามข้อกำหนดใน คำถามนี้ การป้อนข้อมูล: อินพุตสามารถใช้วิธีการอินพุตที่ยอมรับได้โดยกฎ I / O มาตรฐานของเรา มันจะเป็นหนึ่งในโปรแกรมข้างต้น เอาท์พุท: กรณีแรกควรพิมพ์อย่างแน่นอนHello Worldโดยมีหรือไม่มีตัวแบ่งบรรทัดต่อท้าย สำหรับกรณีที่สองหากจำนวนเต็มสูงสุดของภาษาของคุณน้อยกว่า 2,147,483,647 ให้ใช้จำนวนเต็มสูงสุดของภาษาของคุณ เคสแรกและเคสที่สองสามารถพิมพ์ไปยังเอาต์พุตที่ยอมรับได้โดยกฎ I / O มาตรฐานของเรา กรณีที่สามไม่ควรให้ผลลัพธ์ใด ๆ เกณฑ์การให้คะแนน: เช่นนี้คือcode-golfคำตอบที่สั้นที่สุดเป็นไบต์ชนะ
20 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 

3
หนึ่งขึ้นไปที่อื่น ๆ ลงมา
บทนำ ในการท้าทายนี้งานของคุณคือการตัดสินใจว่าลำดับของตัวเลขที่กำหนดสามารถแบ่งออกเป็นสองชุดย่อยซึ่งหนึ่งในนั้นเพิ่มขึ้นและลดลงอีก 8 3 5 5 4 12 3เป็นตัวอย่างให้พิจารณาลำดับ มันสามารถแบ่งออกเป็นสององค์ประกอบดังนี้: 3 5 5 12 8 4 3 การเรียงลำดับของแถวแรกเพิ่มขึ้นและแถวลำดับที่สองลดลง นอกจากนี้คุณควรปฏิบัติงานนี้อย่างมีประสิทธิภาพ อินพุต ข้อมูลที่คุณป้อนเป็นรายการLจำนวนเต็มที่ไม่ว่างในช่วง 0 - 99999 มันมีให้ในรูปแบบดั้งเดิมของภาษาของคุณหรือคั่นด้วยช่องว่าง เอาท์พุต ผลลัพธ์ของคุณเป็นค่าจริงหากLสามารถแบ่งออกเป็นลำดับที่เพิ่มขึ้นและลดลงและมูลค่าที่เป็นเท็จเป็นอย่างอื่น ลำดับไม่จำเป็นต้องเพิ่มหรือลดลงอย่างเคร่งครัดและทั้งคู่อาจว่างเปล่า กฎและโบนัส คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต นอกจากเดรัจฉานบังคับให้เป็นที่ต้องห้ามในความท้าทายนี้: โปรแกรมของคุณจะต้องทำงานในเวลาพหุนามในความยาวของการป้อนข้อมูล คุณไม่จำเป็นต้องส่งคืนทั้งสององค์ประกอบจริง แต่มีโบนัส -20%สำหรับการทำเช่นนั้น เพื่อให้โบนัสง่ายขึ้นในการอ้างสิทธิ์ในภาษาที่พิมพ์แบบคงที่มันเป็นที่ยอมรับได้ที่จะคืนรายการคู่ที่ว่างเปล่าสำหรับอินสแตนซ์ที่ผิดพลาด กรณีทดสอบ กำหนดในรูปแบบinput -> Noneของอินพุตที่ผิดพลาดและinput -> inc decอินพุตที่เป็นความจริง มีการแจกแจงคู่ลำดับความเป็นไปได้เพียงคู่เดียว อาจมีมากกว่านี้ [4,9,2,8,3,7,4,6,5] -> None [0,99999,23423,5252,27658,8671,43245,53900,22339] …

10
จัดลำดับรายการหลักใหม่ตามการจัดเรียงลำดับใหม่
ฉันเพิ่งมีปัญหาในการแก้ไขที่ทำงานที่ฉันมีสองรายการ: รายการหลักและรายการขนาดเล็กที่ประกอบด้วยส่วนย่อยของรายการในรายการหลักอาจเรียงลำดับแตกต่างกัน ฉันต้องการจัดลำดับรายการหลักใหม่ในลักษณะที่รายการในชุดย่อยจะปรากฏในลำดับเดียวกันโดยไม่เปลี่ยนลำดับรายการที่ไม่พบในรายการและเก็บรายการไว้ในตำแหน่งเดียวกันทุกครั้งที่ทำได้ ตกลงว่าอาจฟังดูสับสนดังนั้นฉันจะทำลายมันลง: รายการหลักกำหนดลำดับของรายการเริ่มต้น รายการชุดย่อยกำหนดลำดับสัมพัทธ์ของรายการบางอย่าง ในกรณีที่รายการหลักมีองค์ประกอบสองรายการที่ผิดปกติตามรายการชุดย่อยรายการที่อยู่ก่อนหน้าในรายการหลักควรถูกย้ายไปยังดัชนีที่เก่าที่สุดซึ่งอยู่ในตำแหน่งที่ถูกต้องซึ่งสัมพันธ์กับรายการอื่น ๆ ภายในรายการชุดย่อย (เช่นทันทีหลังจากรายการในภายหลัง) งานของคุณคือการใช้อัลกอริทึมการเรียงลำดับใหม่นี้ ตัวอย่างกรณีทดสอบ Master: [1, 2, 3] Subset: [] Result: [1, 2, 3] Master: [9001, 42, 69, 1337, 420] Subset: [69] Result: [9001, 42, 69, 1337, 420] Master: [9001, 42, 69, 1337, 420, 99, 255] Subset: [69, 9001, 1337] Result: [42, …

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