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

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

13
รับค่าที่ใกล้เคียงที่สุดกับตัวเลข
ในกอล์ฟรหัสนี้คุณจะต้องได้รับหมายเลขที่ใกล้เคียงที่สุดจากรายการอื่นในรายการ ผลลัพธ์อาจเป็นจำนวนที่ใกล้เคียงที่สุดกับอินพุต ตัวอย่าง: value: (Input) 5 --- [1,2,3] --- 3 และโปรแกรมอาจทำงานกับตัวเลขติดลบ ตัวอย่าง: value: (Input) 0 --- [-1,3,5] --- -1 value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers) กฎ: ดังที่ได้กล่าวมาก่อนหน้านี้มันจะต้องทำงานกับตัวเลขติดลบ หากมีสองคำตอบ (ตัวอย่าง: 0 - [5, -5]) โปรแกรมจะให้ความสำคัญกับจำนวนต่ำสุด (-5) นี่คือรหัสกอล์ฟเพื่อให้รหัสที่สั้นที่สุดชนะ!

3
ตรวจสอบระยะเวลาการทำงาน
บทนำ ที่นี่ในเยอรมนีเวลาในการพิจารณาคดีมีความเข้มงวดมาก หากคุณทำงาน 6 ชั่วโมงขึ้นไปต่อวันคุณต้องหยุดพักอย่างน้อย 30 นาที ถ้าคุณทำงาน 9 ชั่วโมงขึ้นไปคุณจะต้องหยุดพัก 45 นาที หากคุณทำงานน้อยกว่า 6 ชั่วโมงคุณไม่ต้องหยุดพัก แน่นอนว่าคุณสามารถแบ่งช่วงพักเหล่านั้นได้ แต่แต่ละส่วนจะต้องมีความยาวอย่างน้อย 15 นาที ความท้าทาย ในการท้าทายนี้คุณจะได้รับรายการช่วงเวลาทำงานและคุณต้องตรวจสอบว่ามีการหยุดพักเพียงพอหรือไม่โดยใช้กฎต่อไปนี้: อนุญาตwเป็นเวลาทำงานเป็นชั่วโมง: w < 6 -> No breaks needed 6 <= w < 9 -> 30 minute break needed w >= 9 -> 45 minute break needed นอกจากนี้การพักแต่ละครั้งจะต้องมีความยาวอย่างน้อย 15 นาที …

12
ลบแถวที่ไม่ใช่ตัวเลขที่ระบุ
ในกรณีที่มีข้อสงสัยใด ๆ : Nan = Non-numeric datatypeสำหรับวัตถุประสงค์ของการท้าทายนี้ เขียนโปรแกรมหรือฟังก์ชั่นที่รับเมทริกซ์ / อาร์เรย์เป็นอินพุตเช่นเดียวกับรายการดัชนีคอลัมน์ Nanความท้าทายคือการลบแถวที่องค์ประกอบทั้งหมดในคอลัมน์ที่ระบุเป็น มันไม่สำคัญว่าองค์ประกอบอื่น ๆ ในแถวจะเป็นตัวเลขหรือไม่ ตัวอย่างต่อไปนี้หวังว่าจะทำให้ชัดเจนยิ่งขึ้น (เป็นดัชนีเดียว): Input array: 16 NaN 3 13 5 11 NaN 8 NaN 7 NaN 12 4 14 -15 1 Input column index: [1 3] Output array: 16 NaN 3 13 5 11 NaN 8 4 …

10
เลิกทำกราฟ
บทนำ ในความท้าทายนี้คุณจะได้รับกราฟกำกับด้วยการวนรอบตัวเองและงานของคุณคือการแปลงให้เป็นกราฟที่ไม่ได้เปลี่ยนทิศทางโดยไม่มีการวนรอบเอง อินพุต การป้อนข้อมูลของคุณเป็นกราฟกำกับโดยมีการตั้งค่าจุดยอด{0, 1, ..., n-1}สำหรับจำนวนธรรมชาติn ≥ 0(หรือ{1, 2, ..., n}ถ้าคุณใช้การจัดทำดัชนีแบบ 1) กราฟจะได้รับเป็น length- nรายการLที่เป็นรายการของออกจากเพื่อนบ้านของจุดสุดยอดL[i] iตัวอย่างเช่นรายการ[[0,1],[0],[1,0,3],[]]แสดงกราฟ .-. | v '-0<--2-->3 ^ | | | v | 1<--' โปรดทราบว่ารายชื่อเพื่อนบ้านไม่จำเป็นต้องสั่งซื้อ แต่รับประกันว่าจะไม่ซ้ำซ้อน เอาท์พุต เอาต์พุตของคุณเป็นกราฟอื่นในรูปแบบเดียวกับอินพุตที่ได้จากกราฟดังต่อไปนี้ ลบการวนซ้ำทั้งหมด สำหรับแต่ละขอบที่เหลือu -> vให้เพิ่มขอบที่กลับด้านv -> uถ้ายังไม่มีอยู่ เช่นเดียวกับอินพุตรายการเพื่อนบ้านของกราฟผลลัพธ์อาจไม่ได้เรียงลำดับ แต่พวกเขาไม่สามารถมีรายการซ้ำได้ สำหรับกราฟด้านบนเอาต์พุตที่ถูกต้องจะเป็น[[1,2],[0,2],[0,1,3],[2]]ซึ่งแทนกราฟ 0<->2<->3 ^ ^ | | v | 1<--' กฎระเบียบ …

2
ทำคะแนนเกม Kingdom Builder
ฉันต้องการลองโค้ดกอล์ฟรูปแบบใหม่ที่นี่ คล้ายกับโบนัสไม่ใช่ทุกส่วนของการท้าทายที่จะต้องทำให้เสร็จ แต่คำตอบแต่ละข้อจะต้องใช้ส่วนย่อยที่มีขนาดที่แน่นอน ดังนั้นนอกเหนือจากการตีกอล์ฟความท้าทายนี้ยังเกี่ยวข้องกับการเลือกชุดคุณลักษณะที่เข้ากันได้ดี กฎระเบียบ Kingdom Builderเป็นเกมกระดานที่เล่นบนกริด hex (จุดสูงสุด) กระดานประกอบด้วยสี่ส่วน (แบบสุ่ม) ซึ่งแต่ละกลุ่มมีเซลล์ Hex10 เท่า 10x10 (ดังนั้นกระดานเต็มจะเป็น 20x20) สำหรับจุดประสงค์ของการท้าทายนี้แต่ละเซลล์ฐานสิบหกมีทั้งน้ำ ( W), ภูเขา ( M) เมือง ( T), ปราสาท ( C) หรือว่างเปล่า ( .) ดังนั้นจตุภาคอาจดูเหมือน . . W . . . . . . . . M W W . . . …

25
สั้นกว่าเสี้ยววินาที!
ท้าทาย งานของคุณสำหรับคำถามนี้คือการแบ่งอาร์เรย์อินพุตของจำนวนเต็มในการเกิดขึ้นครั้งที่สองของทุกจำนวนเต็มในอาร์เรย์นั้น ไม่ชัดเจนเพียงพอหรือไม่ นี่คือตัวอย่างที่จะช่วย อาร์เรย์อินพุต: [2 1 1 2 3 2 2 4 5 6 7 3 7 0 5] เอาท์พุท: [[2 1] [] [3 2 2 4 5 6 7] [] [0] []] คำอธิบาย: นี่คืออาร์เรย์ที่มีเพียงองค์ประกอบที่สองที่เน้นเป็นตัวหนา: [2 1 1 2 3 2 2 4 5 6 7 3 7 0 …

30
ค้นหาเปอร์เซ็นต์
เราไม่ได้มีความท้าทายที่ดีและง่ายในขณะที่ดังนั้นเราไปที่นี่ ให้ลิสต์ของจำนวนเต็มแต่ละรายการที่มากกว่า000และดัชนีเป็นอินพุทเอาท์พุทเปอร์เซ็นต์ของรายการที่ดัชนีที่กำหนดของผลรวมทั้งหมดของรายการ เอาท์พุทควรเป็นอะไรก็ตามที่เป็นตัวแทนตามธรรมชาติสำหรับลอย / จำนวนเต็มอยู่ในภาษาของคุณ (unary, ทศนิยม, เลขคริสตจักร ฯลฯ ) หากคุณเลือกที่จะปัดเศษผลลัพธ์ในทางใดทางหนึ่งมันจะต้องมีทศนิยมอย่างน้อย 2 ตำแหน่ง (เมื่อเหมาะสม1.21.21.2ไม่จำเป็นต้องปัดเศษ แต่1.201.201.20ก็ยอมรับได้อย่างสมบูรณ์เช่นกัน) ดัชนีสามารถเป็น 1 ดัชนีหรือดัชนี 0 และจะอยู่ภายในขอบเขตของอาร์เรย์เสมอ นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ! ตัวอย่าง ใช้การจัดทำดัชนี 1 และปัดเศษเป็น 2 dp list, index => output [1, 2, 3, 4, 5], 5 => 5 / 15 => 33.33 [7, 3, 19], 1 => 7 / …

22
แจกการ์ดให้กับผู้เล่น
คืนนี้เป็นคืนการ์ดเกม! คุณเป็นตัวแทนจำหน่ายและงานของคุณคือการเขียนโปรแกรมเพื่อแจกไพ่ให้ผู้เล่น เมื่อมีอาร์เรย์ของการ์ดและจำนวนของผู้เล่นคุณจะต้องแบ่งไพ่ออกเป็นมือสำหรับผู้เล่นแต่ละคน กฎระเบียบ โปรแกรมของคุณจะได้รับอาเรย์ไม่ว่างเปล่าเช่นเดียวกับที่ไม่ใช่ศูนย์จำนวนเต็มบวกA nอาเรย์จะถูกแบ่งออกเป็นnสองส่วน หากความยาวของสตริงไม่สามารถหารด้วยnการ์ดที่เหลือใด ๆ ในตอนท้ายควรแจกจ่ายให้เท่า ๆ กัน หากn==1คุณจะต้องส่งกลับอาร์เรย์ของอาร์เรย์ด้วยAเนื่องจากเป็นองค์ประกอบเท่านั้น หากnมากกว่าความยาวAคุณจะต้องกลับมือทุกครั้งและมือเปล่า ถ้าn = 4และarray A = [1,2,3]คุณควรจะกลับหรือ[[1],[2],[3]] [[1],[2],[3],[]]คุณมีอิสระในการจัดการมือเปล่าด้วยเปล่า, ไม่ได้กำหนดหรือเป็นโมฆะ อาร์เรย์สามารถมีชนิดใดก็ได้แทนที่จะเป็นตัวเลข คุณไม่ควรเปลี่ยนลำดับของอาเรย์ขณะทำการซื้อขาย ตัวอย่างเช่นif n = 2และA= [1,2,3]ผลลัพธ์ใด ๆ ที่มากกว่า[[1,3],[2]]จะไม่ถูกต้อง กรณีทดสอบ n A Output 1 [1,2,3,4,5,6] [[1,2,3,4,5,6]] 2 [1,2,3,4,5,6] [[1,3,5],[2,4,6]] 3 [1,2,3,4,5,6] [[1,4],[2,5],[3,6]] 4 [1,2,3,4,5,6] [[1,5],[2,6],[3],[4]] 7 [1,2,3,4,5,6] [[1],[2],[3],[4],[5],[6]] // …

8
การหมุนลายนิ้วมือคงที่
ลองนึกภาพเรามีบางpolyominoและต้องการที่จะระบุตัวตนของพวกเขา แต่ polyominos สามารถหมุนเพื่อสุ่มสี่สุ่มห้า hashing พวกเขาจะไม่ให้เราลายนิ้วมือเหมือนกันสำหรับชิ้นส่วนและการหมุนดังกล่าว (ทั่วไป) ตัวอย่างเช่นถ้าเรามี L-tetromino x x xx เราต้องการให้มีลายนิ้วมือเหมือนกับสิ่งเหล่านี้: xx x x xxx xxx , x or x หมายเหตุ:เราอนุญาตให้มีการหมุนบนเครื่องบินได้เท่านั้น (เช่นเป็นโพลีมิโนด้านเดียว) และดังนั้นโพลีโนมิโนต่อไปนี้จะเป็นอีกอันหนึ่ง: x x xx ท้าทาย ภารกิจสำหรับความท้าทายนี้คือการใช้ฟังก์ชั่นลายนิ้วมือ / โปรแกรมซึ่งใช้บูลีน / - เมทริกซ์ที่มีค่า / รายการของรายการ / สตริง / .. เข้ารหัสโพลีโน่และส่งกลับสตริง - ลายนิ้วมือของ polyomino ลายนิ้วมือจะต้องเท่ากันสำหรับการหมุนที่เป็นไปได้ทั้งหมด (โดยทั่วไป 4)m × nม.×nm\times …

9
ซวนเซสแต็ครวม
แรงบันดาลใจจากคำถามนี้กองมากเกิน ความท้าทาย อินพุต อาร์เรย์ของเมทริกซ์จตุรัสที่มีจำนวนเต็มไม่เป็นลบ เอาท์พุต เมทริกซ์จตุรัสที่สร้างจากเมทริกซ์อินพุตดังนี้ ให้เป็นขนาดของเมทริกซ์อินพุตแต่ละตัวและคือจำนวนเมทริกซ์อินพุตยังไม่มีข้อความ× Nยังไม่มีข้อความ×ยังไม่มีข้อความN \times NPPP เพื่อความชัดเจนให้พิจารณาตัวอย่างเมทริกซ์อินพุตต่อไปนี้ ( , P = 3 ):ยังไม่มีข้อความ= 2ยังไม่มีข้อความ=2N=2P= 3P=3P=3 3 5 4 10 6 8 12 11 2 0 9 1 เริ่มต้นด้วยเมทริกซ์อินพุตแรก เลื่อนอินพุตเมทริกซ์ที่สองN −1 ก้าวลงและN −1 ก้าวไปทางขวาเพื่อให้รายการเข้ามุมบนซ้ายตรงกับรายการล่างขวาของรายการก่อนหน้า ลองจินตนาการว่าเมทริกซ์ที่สองนั้นเลื่อนเป็นเมทริกซ์ที่ซ้อนอยู่ด้านบนของเมทริกซ์แรก รวมสองค่าในรายการที่เกิดขึ้นพร้อมกัน เขียนค่าอื่น ๆ และเติมรายการที่เหลือด้วย0เพื่อรับเมทริกซ์ด้วยอินพุตตัวอย่างผลลัพธ์ที่ได้คือ( 2 N- 1 ) × ( 2 N- …

22
แถวและคอลัมน์ที่เรียงลำดับบล็อกในอาร์เรย์ 2D
รับอาร์เรย์ของจำนวนเต็ม 2 มิติลองเรียงแถวและคอลัมน์ในบล็อก ซึ่งหมายความว่าคุณต้องเรียงลำดับแถวหรือคอลัมน์ที่กำหนดเท่านั้น แต่ใช้การแปลงที่จำเป็นสำหรับการจัดเรียงแถวกับทุกแถวหรือคอลัมน์อื่น ๆ ในอาร์เรย์ 2D กฎระเบียบ อินพุตจะเป็นอาร์เรย์จำนวนเต็ม 2 มิติและจำนวนเต็ม 1 ดัชนี จำนวนเต็มนี้จะแทนแถวที่จะเรียงหากตัวเลขเป็นค่าบวกหรือคอลัมน์ที่จะเรียงหากตัวเลขเป็นค่าลบ (หรือวิธีอื่น ๆ ที่คุณต้องการ) ตัวอย่าง: กำหนด4x3แถว (คอลัมน์ x คอลัมน์) คุณสามารถเรียงลำดับคอลัมน์ที่สองด้วย-2อาร์กิวเมนต์หรือแถวที่สามด้วย3อาร์กิวเมนต์ อาร์กิวเมนต์ที่สองนี้จะไม่เป็นศูนย์และค่าสัมบูรณ์ของมันจะไม่มากกว่ามิติที่สอดคล้องกันของอาร์เรย์ เอาต์พุตจะเป็นอาร์เรย์จำนวนเต็มแบบ 2 มิติที่มีการแปลงที่ต้องการเพื่อเรียงลำดับแถวหรือคอลัมน์ที่กำหนด หรือคุณสามารถเขียนอาร์เรย์ไปยัง STDOUT อาร์เรย์เอาต์พุตจะมีแถวหรือคอลัมน์ที่ระบุเรียงตามลำดับจากน้อยไปหามาก เพิ่งทราบว่าเมื่อคุณต้องการสลับตัวเลขสองตัวในหนึ่งแถวคอลัมน์ทั้งหมดที่มีการวางตัวเลขจะถูกสลับ และเมื่อคุณต้องการสลับสองตัวเลขในคอลัมน์แถวทั้งหมดที่มีการวางตัวเลขจะถูกสลับ ในกรณีที่หมายเลขเดียวกันปรากฏขึ้นหลายครั้งในแถว / คอลัมน์ที่จะเรียงลำดับจะมีวิธีแก้ปัญหาที่หลากหลายตามวิธีที่คุณสลับค่าเพียงทำตามกับส่วนที่เหลือของแถว / คอลัมน์ที่จะแลกเปลี่ยน ตัวอย่าง Positive indices for rows and negative indices for columns [5 8 …

21
เติมจนถึงช่วงที่ซ้ำกัน
ให้เป็นรายการของจำนวนเต็มบวกที่ไม่มีการเรียงลำดับเฉพาะและสามารถมีรายการซ้ำได้ เขียนโปรแกรมหรือฟังก์ชั่นที่แสดงรายการของจำนวนเต็มบวกM (ซึ่งเรียงลำดับไม่สำคัญ) เช่นการรวมผลลัพธ์LและMลงในรายการที่เล็กที่สุดซึ่งสามารถแบ่งออกเป็นช่วงจำนวนเต็มเหมือนกัน[ 1 .. i ]โดยที่ฉันคือ องค์ประกอบที่ใหญ่ที่สุดในLLLLMMMLLLMMM[1..i][1..i][1..i]iiiLLL ตัวอย่าง L = [5,3,3,2,7]ให้ องค์ประกอบที่สูงสุดของการมีL 7จำนวนครั้งที่มากที่สุดที่เฉพาะเจาะจงเกิดขึ้นคือ2( 3ปรากฏขึ้น 2 ครั้ง) ดังนั้นเราจำเป็นต้องแสดงรายการMที่จะอนุญาตให้เสร็จสมบูรณ์Lเพื่อให้เราสามารถสร้าง2ช่วงของจำนวนเต็มจาก1ถึง7ไป ดังนั้นเราจำเป็นต้องแสดงผลลัพธ์M = [1,1,2,4,4,5,6,6,7]เพื่อให้จำนวนเต็มแต่ละค่าจาก1ถึง7ปรากฏขึ้น2ครั้ง อินพุตและเอาต์พุต ใช้อะไรก็ได้ในภาษาของคุณที่คล้ายกับรายการ โครงสร้างข้อมูลที่ใช้สำหรับอินพุตและเอาต์พุตต้องเหมือนกัน รายการอินพุตจะมีจำนวนเต็มบวกเท่านั้น รายการอินพุตจะไม่ว่างเปล่า คุณไม่สามารถถือว่ารายการอินพุตถูกเรียงลำดับ การเรียงลำดับในรายการเอาท์พุทไม่สำคัญ กรณีทดสอบ Input Output [1] [] [7] [1, 2, 3, 4, 5, 6] [1, 1, 1] [] [1, 8] [2, 3, 4, …

3
วิธีการสลับองค์ประกอบในเวกเตอร์โดยใช้ฟังก์ชั่นที่ไม่ระบุชื่อใน Octave?
การสลับองค์ประกอบสองอย่างในเวกเตอร์ / เมทริกซ์นั้นง่ายมากใน Octave: x='abcde'; x([4,1])=x([1,4]) x = dbcae น่าเสียดายที่ฉันยังไม่พบวิธีการทำสิ่งนี้ภายในฟังก์ชั่นที่ไม่ระบุชื่อ ในขณะที่ฟังก์ชั่นด้านล่างนั้นถูกต้องตามหลักไวยากรณ์ แต่จะให้องค์ประกอบสองอย่างที่เปลี่ยนกลับไม่ใช่ทั้งหมดxเวกเตอร์ : f=@(x)(x([4,1])=x([1,4])) f(x) ans = ad มีวิธีการที่จะบรรลุพฤติกรรมที่ต้องการโดยใช้ฟังก์ชั่นที่ไม่ระบุชื่อในลักษณะที่เป็นกอล์ฟหรือไม่? สามารถสลับหลายองค์ประกอบด้วยวิธีนี้โดยใช้ฟังก์ชันที่ไม่ระบุชื่อได้หรือไม่? ฉันสามารถสร้างเวกเตอร์การจัดทำดัชนี: f=@(x)x([4,2,3,1,5])แต่การสร้างเวกเตอร์ดังกล่าวแบบไดนามิกนั้นอาจใช้เวลามากเช่นกัน

10
จำกัด จำนวนของคุณด้วยการวิ่งของคุณ
รายการที่ จำกัด ด้วยตนเอง พิจารณารายการที่ไม่มีข้อ จำกัดLที่มีจำนวนเต็มที่ไม่ใช่ค่าลบ การทำงานในLเป็นรายการย่อยที่ต่อเนื่องกันขององค์ประกอบที่เท่ากันซึ่งไม่สามารถทำได้อีกต่อไป ตัวอย่างเช่นการวิ่งของ[0,0,1,1,3,3,3,2,1,1]คือ[0,0], [1,1], [3,3,3], [2 ], [1,1] รายการLเป็นตัว จำกัดถ้าแต่ละจำนวนเต็มN ≥ 1จำนวนของการเกิดขึ้นของNมีค่าน้อยกว่าหรือเท่ากับจำนวนของการทำงานของN-1 รายการด้านบนไม่ จำกัด ตัวเองเนื่องจากมีการเกิดขึ้น 4 ครั้งที่1แต่เรียกใช้เพียง0ครั้งเดียว นี่คือตัวอย่างของรายการที่ตนเอง จำกัด นี้: [0,0,3,4,1,0,2,1,1,0,2,1,0,0,0,1,0] มันมี 5 การวิ่งของ0และ 5 การเกิดขึ้นของ1 , 4 วิ่ง1และ 2 การเกิดขึ้นของ2 , 2 การวิ่งของ2และ 1 การเกิดขึ้นของ3 , 1 การทำงานของ3และ 1 เกิด4 , 1 การทำงานของ4และการเกิดขึ้นของไม่มี5 , ไม่มีการเกิดขึ้นของจำนวนเต็มอื่น …

15
พรรคที่เท่าเทียมกันแบบโมดูโล
คุณจะได้รับอาร์เรย์ของnจำนวนเต็มบวกอย่างเคร่งครัดกับn ≥ 2 งานของคุณคือแผนที่แต่ละรายการA ฉันไปที่: 1ถ้าA j mod A iนั้นแปลกสำหรับแต่ละjเช่นนั้น1 1 j ≤ nและj ≠ i 2ถ้าA j mod A iเป็นคู่สำหรับแต่ละjเช่นนั้น1 ≤ j ≤ nและj ≠ i 0 เป็นอย่างอื่น (parities แบบผสม) ตัวอย่าง สำหรับA = [73, 50, 61]เรามี: 50 mod 73 = 50 , 61 mod 73 = 61 →มิกซ์ 73 …

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