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

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

2
อาร์เรย์สามารถถูกปลดได้หรือไม่?
พื้นหลัง ตัวจัดการการ์ดที่มีทักษะมากมีความสามารถในเทคนิคที่พวกเขาตัดดาดฟ้าอย่างสมบูรณ์แบบครึ่งแล้วสอดแทรกการ์ดอย่างสมบูรณ์แบบ หากพวกเขาเริ่มต้นด้วยสำรับเรียงและดำเนินการเทคนิคนี้ไม่มีที่ติ 52 ครั้งในแถวที่ดาดฟ้าจะถูกเรียกคืนเพื่อการเรียงลำดับ ความท้าทายของคุณคือการใช้สำรับไพ่จำนวนเต็มและตรวจสอบว่าสามารถเรียงลำดับได้ด้วยการใช้ไพ่ Sharo แบบ Faro หรือไม่ คำนิยาม ในทางคณิตศาสตร์ Faro shuffle เป็นการเปลี่ยนแปลงขององค์ประกอบ2 n (สำหรับจำนวนเต็มบวกn ) ซึ่งใช้องค์ประกอบในตำแหน่งi (1 ดัชนี) ไปยังตำแหน่ง 2 i (mod 2 n +1) นอกจากนี้เรายังต้องการจัดการรายการที่มีความยาวคี่ดังนั้นในกรณีนี้เพียงเพิ่มองค์ประกอบหนึ่งไปยังส่วนท้ายของรายการ (Joker ถ้าคุณมีประโยชน์) และ Faro สลับรายการใหม่ตามข้างบน แต่ไม่ต้องสนใจ องค์ประกอบหุ่นที่เพิ่มเข้ามาเมื่อตรวจสอบคำสั่งของรายการ เป้าหมาย เขียนโปรแกรมหรือฟังก์ชั่นที่รับรายการจำนวนเต็มและส่งคืนหรือส่งออกความจริงหากจำนวนของแฟโร Shuffles จำนวนหนึ่งจะทำให้รายการนั้นเรียงลำดับตามลำดับที่ไม่ลดน้อยลง (แม้ว่าจำนวนนั้นจะเป็นศูนย์ มิฉะนั้นส่งคืนหรือส่งออกเป็นเท็จ ตัวอย่าง [1,1,2,3,5,8,13,21] => True [5,1,8,1,13,2,21,3] => True [9,36,5,34,2,10,1] …

21
การทำบัญชีสำหรับ Bob-omb เพศ (ตรวจสอบว่าผลรวมการทำงานที่เคยได้รับต่ำเกินไป)
เชื่อหรือไม่ว่าSex Bob-ombsได้กลายเป็นวงดนตรีที่โด่งดังไปทั่วโลกและกำลังอยู่ในระหว่างการทัวร์รอบโลก! ในฐานะผู้ทำบัญชีของพวกเขาคุณจะต้องดูแลด้านการเงินแบบวันต่อวันและจัดทำรายงานเป็นประจำ ทุกสองสามสัปดาห์คุณจะรวบรวมรายการค่าใช้จ่ายของพวกเขา (ทั้งUSD ) ตามลำดับที่เกิดขึ้น ตัวอย่างเช่นรายการ 378 -95 2234 หมายความว่ามีการฝากเงิน $ 378 ไปยังบัญชีของพวกเขาและหลังจากนั้นก็ถอนเงิน $ 95 และหลังจากนั้นก็ฝาก $ 2234 คุณต้องการให้แน่ใจว่าผลรวมการทำงานของค่าเหล่านี้ไม่เคยไปด้านล่างค่าเกณฑ์T คุณตัดสินใจที่จะเขียนโปรแกรมเพื่อทำสิ่งนี้ให้คุณ ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มTตัวเดียวและรายการจำนวนเต็ม หากผลรวมสะสมของรายการจำนวนเต็มน้อยกว่าTให้พิมพ์หรือคืนค่าที่ผิดพลาดไม่เช่นนั้นจะพิมพ์หรือคืนค่าความจริง คุณสามารถใช้วิธีป้อนข้อมูลตามปกติ (stdin, จากไฟล์, บรรทัดคำสั่ง, อาร์กิวเมนต์ไปยังฟังก์ชัน) ที่จุดเริ่มต้นของรายการผลรวมสะสมคือ 0 ดังนั้นค่าTหมายถึงผลลัพธ์จะผิดพลาดเสมอ + จะไม่เป็นจำนวนเต็มบวก รายการอาจประกอบด้วย 0 รายการอาจว่างเปล่า กรณีทดสอบ Tคือ -5 ในสิ่งเหล่านี้ทั้งหมด Falsy: -6 1 2 3 -20 200 -300 …

5
สแต็คดาดฟ้า!
อลิซและบ็อบชอบเล่นเกมไพ่โดยมีจำนวนการ์ดเป็นจำนวนเต็มจำนวนต่อเนื่องกัน อลิซมีวิธีในการสับสำรับโดยเฉพาะอย่างยิ่ง อันดับแรกเธอหยิบไพ่ใบบนสุดจากเด็คและวางไว้ที่ด้านล่างของเด็ค จากนั้นเธอก็เอาไพ่ใบต่อไปออกและเริ่มกองกับมัน จากนั้นเธอวนรอบการ์ดใบบนสุดลงไปด้านล่างและวางการ์ดใบใหม่ลงบนกอง เธอทำขั้นตอนนี้ซ้ำจนกระทั่งเธอเทสำรับตรงจุดที่กองเป็นเด็คใหม่ deck | pile -----------+----------- 3 1 4 0 2 | 1 4 0 2 3 | 4 0 2 3 | 1 0 2 3 4 | 1 2 3 4 | 0 1 3 4 2 | 0 1 4 2 | 3 …

11
ค้นหาบรรทัดที่ยิ่งใหญ่ที่สุด
คุณจะได้รับอาร์เรย์ 2 มิติ A ของจำนวนเต็มและความยาว N งานของคุณคือการค้นหาภายในอาร์เรย์เป็นเส้นตรง (แนวนอนแนวตั้งหรือแนวทะแยง) ขององค์ประกอบ N ที่ให้ผลรวมผลรวมสูงสุดและคืนค่าผลรวมนั้น . ตัวอย่าง N = 3, A = 3 3 7 9 3 2 2 10 4 1 7 7 2 5 0 2 1 4 1 3 อาร์เรย์นี้มี 34 บรรทัดที่ใช้ได้รวมถึง Vertical [3] 3 7 9 3 [2] 2 10 …

9
Fivenum และเล็กน้อย
(เส้นขนาน, เส้นขนาน, เส้นขนานที่แยบยลที่สุด) นี่เป็นส่วนแรกของซีรีย์หลายส่วนที่ได้รับแรงบันดาลใจจากฟังก์ชั่น R ที่แตกต่างกัน งาน ได้รับชุดDDDของจำนวนเต็มบวกฉันต้องการให้คุณคำนวณรวม 5 จำนวนของDDDDอย่างไรก็ตามฉันกำลังทำงานกับชุดข้อมูลขนาดใหญ่ดังนั้นฉันต้องการรหัสของคุณให้เล็กที่สุดเท่าที่จะเป็นไปได้ทำให้ฉันสามารถเก็บไว้ในคอมพิวเตอร์ของฉันได้ สรุปหมายเลขห้าประกอบด้วย: ค่าต่ำสุด ควอไทล์แรก (Q1) ค่ามัธยฐาน / ควอไทล์ที่สอง (Q2) ควอไทล์ที่สาม (Q3) ค่าสูงสุด มีหลายวิธีในการกำหนดควอไทล์ แต่เราจะใช้วิธีที่ถูกใช้โดย R: คำนิยาม: ต่ำสุดและสูงสุด: ค่าน้อยที่สุดและใหญ่ที่สุดตามลำดับ ค่ามัธยฐาน: ค่ากลางถ้าDDDมีจำนวนคี่ของรายการและค่าเฉลี่ยเลขคณิตของสองค่ากลางมากที่สุดถ้าDDDมีจำนวนคู่ของรายการ โปรดทราบว่านี่หมายความว่าค่ามัธยฐานอาจเป็นค่าที่ไม่ใช่จำนวนเต็ม เราได้มีการคำนวณค่ามัธยฐานก่อน ควอไทล์ที่หนึ่งและสาม: แบ่งข้อมูลออกเป็นสองส่วนรวมถึงองค์ประกอบกลางในแต่ละครึ่งถ้าDDDมีจำนวนคี่ของรายการและหาค่ามัธยฐานของแต่ละครึ่ง ค่ามัธยฐานของครึ่งล่างเป็นควอไทล์แรกและค่ามัธยฐานของครึ่งบนเป็นควอไทล์ที่สาม ตัวอย่าง: D = [ 1 , 2 , 3 , 4 , 5 ]D=[1,2,3,4,5]D=[1,2,3,4,5] ] ค่ามัธยฐานคือ333แล้วและครึ่งล่างคือ[ …

25
สร้างมาตรฐานตัวอย่าง (คำนวณคะแนน z)
ได้รับรายชื่อของลอยหมายเลขจุดมาตรฐานมัน รายละเอียด รายการx1,x2,…,xnx1,x2,…,xnx_1,x_2,\ldots,x_nเป็นมาตรฐานหากค่าเฉลี่ยของทุกค่าคือ 0 และส่วนเบี่ยงเบนมาตรฐานคือ 1 วิธีหนึ่งในการคำนวณนี่คือวิธีแรกคือการคำนวณค่าเฉลี่ยμμ\muและส่วนเบี่ยงเบนมาตรฐานσσ\sigmaเป็น μ=1n∑i=1nxiσ=1n∑i=1n(xi−μ)2−−−−−−−−−−−−√,μ=1n∑i=1nxiσ=1n∑i=1n(xi−μ)2, \mu = \frac1n\sum_{i=1}^n x_i \qquad \sigma = \sqrt{\frac{1}{n}\sum_{i=1}^n (x_i -\mu)^2} , และจากนั้นคอมพิวเตอร์มาตรฐานโดยการเปลี่ยนทุกxixix_iกับxi−μσxi−μσ\frac{x_i-\mu}{\sigma}σ คุณสามารถสรุปได้ว่าการป้อนข้อมูลที่มีอย่างน้อยสองรายการที่แตกต่างกัน (ซึ่งหมายถึงσ≠0σ≠0\sigma \neq 0 ) โปรดทราบว่าการใช้งานบางคนใช้ค่าเบี่ยงเบนมาตรฐานของกลุ่มตัวอย่างซึ่งไม่เท่ากับค่าเบี่ยงเบนมาตรฐานของประชากรσσ\sigmaเราจะใช้ที่นี่ มีเป็นคำตอบ CWสำหรับทุกการแก้ปัญหาจิ๊บจ๊อย ตัวอย่าง [1,2,3] -> [-1.224744871391589,0.0,1.224744871391589] [1,2] -> [-1,1] [-3,1,4,1,5] -> [-1.6428571428571428,-0.21428571428571433,0.8571428571428572,-0.21428571428571433,1.2142857142857144] (ตัวอย่างเหล่านี้สร้างด้วยสคริปต์นี้)

16
ค้นหา Array Runs
ค้นหาการวิ่งภายในอาเรย์ การวิ่งหมายถึงตัวเลขสามตัวขึ้นไปที่เพิ่มขึ้นจากครั้งก่อนด้วยขั้นตอนคงที่ ตัวอย่างเช่น [1,2,3] จะเป็นการรันด้วยขั้นตอนที่ 1 [1,3,5,7] จะเป็นการรันด้วยขั้นตอนที่ 2 และ [1,2,4,5] ไม่ใช่การเรียกใช้ เราสามารถแสดงการวิ่งเหล่านี้โดยสัญกรณ์ "i to j by s" โดยที่ฉันเป็นหมายเลขแรกของการวิ่ง j คือหมายเลขสุดท้ายของการวิ่งและ s คือขั้นตอน อย่างไรก็ตามการรันของขั้นตอนที่ 1 จะแสดงเป็น "i to j" ดังนั้นก่อนใช้อาร์เรย์เราจะได้รับ: [1,2,3] -> "1to3" [1,3,5,7] -> "1to7by2" [1,2,4,5] -> "1 2 4 5" ในความท้าทายนี้คุณต้องทำเช่นนี้สำหรับอาร์เรย์ที่อาจมีการเรียกใช้หลายครั้ง ตัวอย่างโค้ด Python พร้อมการเรียกซ้ำ: def arr_comp_rec(a, start_index): # …

5
การแคชที่เหมาะสมที่สุด
คุณจะได้รับลำดับของการร้องขอหน่วยความจำและขนาดแคช คุณต้องส่งคืนจำนวนแคชที่น้อยที่สุดที่เป็นไปได้ภายใต้กลยุทธ์การแทนที่แคชใด ๆ กลยุทธ์ที่ดีที่สุดคืออัลกอริทึมของ Beladyซึ่งคุณสามารถใช้ได้หากคุณต้องการ ระบบแคชทำงานดังนี้แคชเริ่มว่างเปล่า คำขอหน่วยความจำเข้ามาหากคำขอขอชิ้นส่วนของข้อมูลในแคชทั้งหมดเป็นอย่างดี ถ้าไม่คุณจะได้รับแคช ณ จุดนี้คุณสามารถแทรกข้อมูลที่ถูกร้องขอลงในแคชเพื่อใช้ในอนาคต หากแคชเต็มและคุณต้องการแทรกข้อมูลใหม่คุณต้องขับไล่ข้อมูลที่เคยอยู่ในแคชก่อนหน้านี้ คุณไม่สามารถแทรกข้อมูลที่ไม่ได้อยู่ในแคช เป้าหมายของคุณคือค้นหาจำนวนแคชที่น้อยที่สุดเท่าที่จะเป็นไปได้สำหรับลำดับการร้องขอหน่วยความจำและขนาดแคชที่กำหนด คุณจะได้รับขนาดแคชจำนวนเต็มบวกและลำดับคำขอหน่วยความจำซึ่งเป็นรายการของโทเค็น โทเค็นเหล่านี้สามารถเป็นโทเค็นแบบใดก็ได้ที่คุณต้องการตราบใดที่มีโทเค็นที่แตกต่างกันอย่างน้อย 256 ตัวเป็นไปได้ (ไบต์นั้นใช้ได้ ตัวอย่างเช่น ints, สตริง, รายการทั้งหมดเป็นเรื่องปกติ ขอคำชี้แจงหากจำเป็น กรณีทดสอบ: 3 [5, 0, 1, 2, 0, 3, 1, 2, 5, 2] 6 ดูวิกิพีเดียสำหรับนโยบายการเปลี่ยนที่ประสบความสำเร็จ 2 [0, 1, 2, 0, 1, 0, 1] 3 เพียงหลีกเลี่ยงการเพิ่ม2ลงในแคช 3 [0, 1, …

3
ค้นหาพื้นที่จอดรถฟรีหลายระดับ
คำนำที่เกี่ยวข้องกับเด็ก ๆ เมื่อใดก็ตามที่ฉันพาลูก ๆ ไปที่สวนสนุกเด็ก ๆ จะรู้สึกประหม่ามากขึ้นเมื่อเราอยู่ใกล้กับสวนสาธารณะด้วยจุดสูงสุดของเส้นประสาทเมื่อเราอยู่ในลานจอดรถและไม่พบที่จอด ดังนั้นฉันจึงตัดสินใจว่าฉันต้องการวิธีในการหาพื้นที่จอดรถที่ใกล้ที่สุดเพื่อลดเวลาที่จอดรถให้น้อยที่สุด คำแนะนำทางเทคนิค ลองนึกภาพการเป็นตัวแทนของที่จอดรถแบบนี้: ***************** * * * ··CC··C··CC·· * * ************* * * ··CCCCCCCCC·· * * * **********E****** ในการเป็นตัวแทนนี้หมาย*ถึงกำแพงที่·จอดรถฟรีEจุดเข้าและCรถที่จอดอยู่แล้ว ทุกช่องว่างเป็นตำแหน่งที่จอดรถสามารถใช้เพื่อเคลื่อนที่ไปรอบ ๆ ลานจอดรถ ตอนนี้เราจะขยายแนวคิดนี้เป็น 3D เพื่อสร้างที่จอดรถหลายระดับ: 1st floor 2nd floor 3rd floor 4th floor ***************** ***************** ***************** ***************** * 1 * 2 * 3 …

6
คุณจะเป็นผู้ประกอบของฉันหรือไม่
ฉันได้รับเมื่อเร็ว ๆ นี้การเล่นผ่าน ' ทอ ' และฉันคิดว่ามันเป็นของขวัญที่เป็นความท้าทายที่น่าสนใจสำหรับรหัสกอล์ฟ สถานที่ตั้ง: The Weaver เป็นเกมที่คุณจะได้รับริบบิ้นจำนวนมากจาก 2 ทิศทาง 90 องศาและเป้าหมายของคุณคือการสลับมันที่ทางแยกบางแห่งเพื่อให้ได้ผลลัพธ์ที่ต้องการ เช่นนี้: นี่คือการแลกเปลี่ยน: นี่ไม่ใช่: การป้อนข้อมูล: 3 อาร์เรย์: ริบบิ้นด้านบน (จากซ้ายไปขวา) ริบบิ้นด้านซ้าย (บนลงล่าง) พิกัดของจุดแยกที่ต้องการสลับ เอาท์พุท: 2 อาร์เรย์: ริบบิ้นด้านล่าง (จากซ้ายไปขวา) ริบบิ้นด้านขวา (บนลงล่าง) ตัวอย่าง: ฉันจะใช้ภาพด้านบนเป็นตัวอย่างแรก: การป้อนข้อมูล: [r, y, b], [r, y, b], [(0, 1), (2, 1), (2, 2)] เกิดอะไรขึ้น: r …

9
บล็อกการจัดเรียงใหม่
ดังนั้นงานของคุณคือใช้บล็อก 3x3 โดยที่-ช่องว่างเฉลี่ยหมายถึงและ*ช่องว่างที่เติมเต็มตัวอย่างเช่น -** -*- *-* และจัดเรียงบล็อกใหม่เพื่อให้*รูปแบบเป็น X ดังนี้: *-* -*- *-* อินพุต: 3x3 สี่เหลี่ยมเช่นด้านบนพวกเขาสามารถเป็น 3 บรรทัดอาร์เรย์หรือที่คุณต้องการ เอาท์พุท:จำนวนที่สั้นที่สุดของการเคลื่อนไหวเพื่อจัดเรียงใหม่เป็น X การเคลื่อนไหวแต่ละครั้งจะพลิกตัวละคร 2 ตัวที่สัมผัสและเป็นแนวนอนจากกันแนวตั้งจากกันและกันหรือแนวทแยงมุมจากกัน ถ้ามันเป็นไปไม่ได้กลับมาส่งออกไปไม่ได้ใด ๆ ตัวอย่างเช่นหรือ999 เป็นจำนวนที่น้อยที่สุด-42425 กรณีทดสอบ: 1) ผลลัพธ์: 1 -** -*- *-* 2) ผลลัพธ์: -1 -*- -*- *-* 3) ผลลัพธ์: 3 --- -** *** 4) ผลลัพธ์: 0 *-* -*- …

12
พื้นที่จุดตัดวงกลม
คำอธิบาย: ให้xและyตำแหน่งของวงกลมสองวงพร้อมกับพวกradiiมันออกพื้นที่จุดตัดของวงกลมทั้งสอง อินพุต: คุณจะได้รับข้อมูลต่อไปนี้: array 1 = x and y positions of circle a array 2 = x and y positions of circle b radius = radii of the two congruent circles วิธีการป้อนข้อมูล: ([12 , 20] , [20 , 18] , 12) ---> two array and number ([12 , 20 …

12
ต่อกันเป็น Palindrome จาก Substrings Palindromic
รับสตริงlค้นหาสตริงย่อย palindromic ทั้งหมดpของl(รวมถึงรายการซ้ำและสตริงอักขระเดี่ยว) ถัดไปจัดเรียงสตริงย่อยทั้งหมดใหม่pให้เป็นพาลินโดรมที่ถูกต้อง (อาจมีคำตอบที่ถูกต้องหลายข้อ) ถ้ามันเป็นไปไม่ได้ที่จะจัดเรียงใหม่pใน palindrome เดียวโปรแกรมของคุณอาจมีพฤติกรรมที่ไม่ได้กำหนด (ข้อผิดพลาดสแต็ค - ล้น, ออก, แขวน / / ฆ่า John Dvorak ฯลฯ โดยไม่ได้ตั้งใจ) ตัวอย่าง กรณีทดสอบที่ถูกต้อง l = anaa p = ['a', 'n', 'a', 'a', 'aa', 'ana'] result = anaaaaana or aanaaanaa or aaananaaa l = 1213235 p = ['1', '2', '1', '3', '2', …

14
สร้างเมทริกซ์ย่อยทั้งหมดของขนาดที่กำหนด
คุณจะได้รับเมทริกซ์จตุรัสของจำนวนเต็มMและอีกจำนวนเต็มบวกnอย่างเคร่งครัดมีขนาดเล็กกว่าขนาดของM งานของคุณคือการสร้างทุกตารางย่อยของเมทริกซ์Mขนาดn สำหรับวัตถุประสงค์ของการท้าทายนี้เป็นตารางย่อยเมทริกซ์เป็นกลุ่มที่อยู่ติดกันแถวและคอลัมน์ที่มีอยู่ในM รูปแบบอินพุต / เอาต์พุต คุณมีอิสระที่จะเลือกรูปแบบที่เหมาะสมอื่น ๆ เหล่านี้เป็นเพียงตัวอย่าง อินพุต เมทริกซ์ในประเภทเมทริกซ์เนทีฟ (หากภาษาของคุณมี) อาร์เรย์ 2 มิติ (อาร์เรย์ 1D ของอาร์เรย์แต่ละแถวสอดคล้องกับหนึ่งแถว / หนึ่งคอลัมน์) อาร์เรย์ 1D (เนื่องจากเมทริกซ์เป็นจตุรัสเสมอ) สตริง (คุณเลือกการเว้นวรรค แต่โปรดอย่าใช้สิ่งนี้ในทางที่ผิด) ฯลฯ เอาท์พุต เมทริกซ์ของเมทริกซ์ อาเรย์ 4D ที่แต่ละองค์ประกอบ (รายการ 3D) แสดงเมทริกซ์ย่อยในแถว / คอลัมน์ อาร์เรย์ 3 มิติที่แต่ละองค์ประกอบ (รายการ 2D) แสดงเมทริกซ์ย่อย การแทนค่าสตริงของเมทริกซ์ย่อยที่ได้เป็นต้น รายละเอียด คุณอาจเลือกที่จะใช้ขนาดของMเป็นอินพุตเช่นกัน มันมีการประกันเพื่อมีอย่างน้อย2 การวางแนวของเอาต์พุตนั้นโดยพลการ: คุณอาจเลือกที่จะเอาท์พุทเมทริกซ์ย่อยเป็นรายการของคอลัมน์หรือรายการของแถว แต่ตัวเลือกของคุณจะต้องสอดคล้องกัน …

14
เปรียบเทียบสองรายการตามค่าสูงสุด
รับรายการที่แตกต่างกันสองรายการของจำนวนเต็มที่ไม่เป็นลบให้ส่งคืนรายการที่มีค่าสูงสุดสูงสุด (เช่น[4, 2], [3, 3, 1] -> [4, 2]) หากทั้งคู่มีค่าสูงสุดเท่ากันให้ส่งคืนรายการที่มีอินสแตนซ์มากที่สุดของค่าสูงสุดนี้ (เช่น[4, 2, 4], [4, 3, 3, 3, 1, 3] -> [4, 2, 4]) หากหลังจากการเปรียบเทียบเหล่านี้พวกเขาเท่าเทียมกันให้ทำการเปรียบเทียบแบบเดียวกัน แต่ใช้ไอเท็มสูงสุดถัดไป (เช่น[2, 3, 4, 4], [4, 4, 3, 3, 1] -> [4, 4, 3, 3, 1]) หากหลังจากการเปรียบเทียบทั้งหมดนี้พวกเขายังคงมีความเท่าเทียมกันเอาท์พุทรายการที่ยาวขึ้น (เช่น[4, 3, 2, 1, 0], [1, 2, 3, 4] …

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