การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

7
บันไดหลักซ้อนกัน
รับจำนวนเต็มบวกและhเอาต์พุตคอลัมน์และWWwชั่วโมงชั่วโมงhชมWWwชั่วโมงชั่วโมงhแถวของข้อความตามที่อธิบายไว้ด้านล่าง แถวแรกเริ่มต้นด้วย 11 0วินาทีแถวที่สองมี 10 วินาทีแถว1ที่สามมีเก้า2แถวและลงแถวที่สิบด้วยสอง9วินาที ในแต่ละสิบแถวแรกหลังจากการเริ่มต้นของตัวเลขที่ต่อเนื่องกันเลขหลักถัดไปจะปรากฏขึ้นสองครั้งก่อนที่ตัวเลขต่ำสุดถัดไปที่สองจะปรากฏขึ้นสองครั้งด้วยรูปแบบนี้ซ้ำตลอดไป หากมีการเรียกใช้0s จำนวนหลักหลังจากนั้นเสมอ9 s แถวด้านล่างแถวที่สิบจะเหมือนกับแถวที่อยู่ด้านบนทันที แต่เลื่อนไปทางขวาทีละหนึ่ง ตัวเลขใหม่ที่ปรากฏขึ้นนั้นเหมือนกับตัวเลขหลักซ้ายสุดก่อนหน้าหากไม่ใช่ตัวเลขถัดจากอินสแตนซ์อื่นของตัวเอง ไม่เช่นนั้นมันจะเป็นตัวเลขสูงสุดถัดไป (หมุนเวียนจาก 9 กลับเป็น 0) องค์ประกอบแรกมีดังนี้:11 ×1011×1011\times10 00000000000 11111111110 22222222211 33333333221 44444443322 55555544332 66666554433 77776655443 88877665544 99887766554 นี่คือภาพที่มีข้อความสีเพื่อทำให้รูปแบบชัดเจนยิ่งขึ้น หากคุณต้องการสร้างคอลัมน์ / แถวให้น้อยลงคุณควรครอบตัดข้อความด้านบน หากคุณต้องการสร้างคอลัมน์ / แถวมากกว่านี้บันไดที่มีอยู่ควรจะขยายออกไป หากมีคอลัมน์ / แถวเพิ่มจำนวนบันไดที่เพิ่มขึ้นของตัวเลขติดต่อกันควรเลือกตัวเลขด้วยจำนวนเต็ม ดังนั้นสำหรับอินพุตเอาต์พุตควรเป็น( 15 , 13 )(15,13)(15,13) 000000000009988 111111111100998 222222222110099 333333332211009 444444433221100 …

15
แยกรายการออกเป็นชิ้นขนาด แต่ไม่นับรายการที่ล้มเหลวในการสรุป
แรงจูงใจ : บางครั้งบางรายการในรายการจะไม่นับรวมกับยอดรวมของคุณ ตัวอย่างเช่นการนับจำนวนผู้โดยสารเครื่องบินในแถวที่ทารกนั่งอยู่บนตักของผู้ปกครอง ท้าทาย : เขียนโปรแกรมในการแยกรายชื่อของรายการเป็นชิ้น แต่ละอัน (ยกเว้นอาจเป็นครั้งสุดท้าย) มีขนาดเท่ากันซึ่งขนาดถูกกำหนดเป็นจำนวนรายการที่ผ่านฟังก์ชันเพรดิเคต กฎ : โปรแกรมของคุณต้องใช้ รายการของรายการ ขนาดก้อนจำนวนเต็มบวก ฟังก์ชันเพรดิเคต (รับไอเท็มและส่งคืนจริงหรือเท็จ) คุณต้องส่งคืนรายการอินพุตแยกเป็นชิ้น ๆ แต่ละอันคือรายการของรายการ โดยรวมแล้วรายการจะต้องอยู่ในลำดับเดียวกันโดยไม่มีใครสนใจ จำนวนรายการที่ผ่านเพรดิเคตในแต่ละก้อน (ยกเว้นอาจเป็นรายการสุดท้าย) ควรตรงกับขนาดของก้อนข้อมูลเข้า รายการที่ล้มเหลวเพรดิเคตไม่ควรนับรวมกับขนาดนี้ รายการที่ล้มเหลวของกริยาคือ ยังคงรวมอยู่ในกลุ่มเอาต์พุต จัดสรรให้กับชิ้นแรกสุดในกรณีที่ชิ้นเป็น "เต็ม" แต่รายการถัดไปเป็นรายการที่ล้มเหลวในเพรดิเคต ดังนั้นชิ้นสุดท้ายอาจไม่เพียง แต่ประกอบด้วยรายการที่ล้มเหลวของเพรดิเคต ก้อนสุดท้ายอาจมีขนาดน้อยกว่าขนาดก้อนเนื่องจากรายการทั้งหมดได้รับการพิจารณา ตัวอย่างที่ไม่ครบถ้วนสมบูรณ์: ตัวอย่างที่ง่ายที่สุดคือการพิจารณา1และ0s x ==> x > 0ที่ฟังก์ชั่นการวินิจฉัยคือ ในกรณีนี้sumแต่ละอันจะต้องตรงกับขนาดของก้อน รายการ: [], ขนาด: 2, เพรดิเคต: x > 0-> อย่างใดอย่างหนึ่ง[]หรือ[[]] …

3
กบเดินตาย
บทนำ จอนนี่ต้องการเล่น Frogger อย่างไรก็ตามเขาไม่ดีมาก ในความเป็นจริงเขาจะพยายามก้าวไปข้างหน้าและหลังจากแพลตฟอร์มได้ย้าย ค้นหาว่ากบของจอนนี่สามารถไปถึงจุดสิ้นสุดของเส้นทางหรือว่ามันตายไปแล้วหรือไม่ ท้าทาย โปรแกรมจะได้รับเป็นอินพุตของตาราง Frogger ที่ประกอบด้วย0s และ1s ด้วยรูปแบบต่อไปนี้: ตารางจะมีความกว้างและความยาวแบบสุ่มและอย่างน้อย 3x3 1 แสดงถึงแพลตฟอร์ม 0 แสดงถึงน้ำ F แสดงถึงตำแหน่งเริ่มต้นของกบ ทุกบรรทัดแรกและสุดท้ายของกริดจะถูกแต่งโดย1s เท่านั้นและจะไม่ย้ายและกบFจะถูกวางที่สุ่มในบรรทัดสุดท้าย เลเยอร์กลางทุกอันจะมีการเคลื่อนไหวอยู่เสมอและจะมี<หรือ>ในตอนท้ายของทุกบรรทัดที่ระบุว่ามันเลื่อนไปทางซ้ายหรือขวา อนุญาตให้ใช้การแทนที่สัญลักษณ์เหล่านี้ด้วยของคุณเองตราบใดที่สัญลักษณ์เหล่านี้มีความแตกต่างกันและคุณระบุการแทนที่ในคำตอบของคุณ อินพุตอาจอยู่ในรูปแบบที่เข้ากันได้ (สตริงที่มีตัวแบ่งบรรทัดอาร์เรย์ของสตริงอาร์เรย์ของอักขระ ... ) กฏท้าทาย ทุกเทิร์นทุกแพลทฟอร์มจะเลื่อนหนึ่งช่องขึ้นอยู่กับทิศทางที่ระบุโดย<หรือ>เครื่องหมาย แพลตฟอร์มปรากฏขึ้นอีกครั้งที่อีกด้านหนึ่งของตารางถ้าพวกเขาถูกผลักออกจาก "หน้าจอ" หากกบอยู่บนแท่นเคลื่อนที่มันจะเคลื่อนที่ไปพร้อมกับมัน หลังจากนั้นกบจะกระโดดหนึ่งตารางไปยังแถวบนสุด กบจะย้ายทุกเทิร์น กบจะตายหากมันกระโดดในน้ำ ( 0) หรือสัมผัสกับด้านข้างของตารางพร้อมกับแท่นเคลื่อนที่ โปรแกรมของคุณต้องส่งออกค่าความจริงหากกบยังมีชีวิตอยู่และค่าที่ผิดพลาดเป็นอย่างอื่น นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ ช่องโหว่มาตรฐานใช้ ตัวอย่าง ตัวอย่างที่ 1 อินพุต 11111 00111> 00101< 1F111 …

12
ความยาวเซกเมนต์ของชุดคันทอร์ทั่วไป
ปัญหา ลองกำหนดคันทอร์ทั่วไปที่ตั้งค่าโดยการลบเซกเมนต์ความยาวแบบมีเหตุผลบางส่วนออกจากช่วงกลางของช่วงเวลาทั้งหมดที่ยังไม่ถูกลบโดยเริ่มจากช่วงเวลาต่อเนื่องเดียว กำหนดความยาวสัมพัทธ์ของเซกเมนต์ที่จะลบหรือไม่และจำนวนการวนซ้ำที่ต้องทำปัญหาคือการเขียนโปรแกรมหรือฟังก์ชันที่เอาต์พุตความยาวสัมพัทธ์ของเซกเมนต์ที่มีหรือไม่ถูกลบหลังจากnการวนซ้ำ ตัวอย่าง: ลบซ้ำอันดับที่ 4 และ 6 อย่างซ้ำ ๆ การป้อนข้อมูล: n - จำนวนการวนซ้ำการทำดัชนีเริ่มต้นจาก 0 หรือ 1 l- รายการความยาวเซกเมนต์เป็นจำนวนเต็มบวกที่มีgcd(l)=1และความยาวคี่แทนความยาวสัมพัทธ์ของส่วนต่าง ๆ ที่คงอยู่หรือถูกลบเริ่มต้นจากเซกเมนต์ที่ไม่ถูกลบ เนื่องจากความยาวของรายการเป็นเลขคี่กลุ่มแรกและกลุ่มสุดท้ายจะไม่ถูกลบ ตัวอย่างเช่นสำหรับคันทอร์ปกติตั้งค่านี้จะเป็น [1,1,1] สำหรับหนึ่งในสามที่อยู่หนึ่งในสามที่จะถูกลบและอีกหนึ่งในสามที่ไม่ เอาท์พุท: รายการจำนวนเต็มo, gcd(o)=1ของความยาวส่วนญาติในnการทำซ้ำ TH lเมื่อกลุ่มที่ไม่ได้ถูกลบในการทำซ้ำก่อนหน้านี้จะถูกแทนที่ด้วยสำเนาลดขนาดลงของรายการ [1]ย้ำเป็นเพียงครั้งแรก คุณสามารถใช้วิธีการแสดงผลที่ไม่คลุมเครือใด ๆได้ ตัวอย่าง n=0, l=[3,1,1,1,2] → [1] n=1, l=[3,1,1,1,2] → [3, 1, 1, 1, 2] n=2, l=[3,1,1,1,2] → [9,3,3,3,6,8,3,1,1,1,2,8,6,2,2,2,4] …

30
ค้นหาคำนำหน้าและทำรายการคำต่อท้ายทั้งหมดในข้อความ
ฉันใช้ "คำต่อท้าย" ที่นี่อย่างอิสระเพื่อหมายถึง "สตริงย่อยใด ๆ ที่ตามหลังคำนำหน้า" "คำนำหน้า" ที่นี่หมายถึงการเริ่มต้นของคำที่คำเริ่มต้นถูกกำหนดให้เป็นหลังช่องว่างหรือจากอักขระตัวแรกของข้อความที่ป้อน (สำหรับคำแรก) "คำนำหน้า" ในช่วงกลางของคำจะถูกละเว้น เช่นถ้าคำนำหน้าการป้อนข้อมูลของคุณคือ "แขน" และข้อความอินพุตคือ "กองทัพของดัมเบิลดอร์มีอาวุธครบมือสำหรับอาร์มาเก็ดดอนที่กำลังจะมา" ดังนั้นรายการเอาท์พุทจะมี (y, ed, ageddon) กรณีทดสอบ ถือว่าเป็นกรณี ๆ ไปสตริงสิ้นสุดลงหลังจากช่องว่าง อินพุตจะไม่ขึ้นต้นด้วยช่องว่าง การลบรายการที่ซ้ำกันเป็นทางเลือก Input prefix: "1" Input text: "He1in aosl 1ll j21j 1lj2j 1lj2 1ll l1j2i" Output: (ll, lj2j, lj2) - in any permutation Input prefix: "frac" Input …

16
นับจำนวนครั้ง
แรงบันดาลใจจากสถานการณ์ในชีวิตจริงซึ่งฉันได้ขอคำตอบจากที่นี่: /superuser/1312212/writing-a-formula-to-count-how-many-times-each-date- ปรากฏใน-a-ชุดจากวันที่วิ่ง กำหนดอาร์เรย์ของ timespans (หรือคู่ startdate-enddate) ให้นับจำนวนครั้งที่ครอบคลุมกี่ครั้งต่อวันสำหรับทุกวันในช่วงทั้งหมด ตัวอย่างเช่น: # Start End 1 2001-01-01 2001-01-01 2 2001-01-01 2001-01-03 3 2001-01-01 2001-01-02 4 2001-01-03 2001-01-03 5 2001-01-05 2001-01-05 รับข้อมูลข้างต้นผลลัพธ์ควรเป็นดังนี้: 2001-01-01: 3 (Records 1,2,3) 2001-01-02: 2 (Records 2,3) 2001-01-03: 2 (Records 2,4) 2001-01-04: 0 2001-01-05: 1 (Record 5) คุณจะต้องส่งออกการนับสำหรับแต่ละวัน (ตามลำดับเรียงลำดับที่เก่าแก่ที่สุด); ไม่ใช่ระเบียนที่จะปรากฏ คุณสามารถสมมติได้ว่าแต่ละช่วงเวลามีเฉพาะวันที่เท่านั้นไม่ใช่เวลา …
17 code-golf  date 


7
การคูณ Nim
พื้นหลัง หากคุณเล่นกอร์ดโค้ดมากคุณอาจทราบถึงการดำเนินการXOR ระดับบิต กำหนดจำนวนเต็มสองตัวมันให้จำนวนเต็มอีกตัวที่มี1s ในบิตที่อินพุตทั้งสองแตกต่างกัน ตัวอย่างเช่น1010 XOR 0011 = 1001. ดูเหมือนจะมีประโยชน์มากในทฤษฎีเกมซึ่งเป็นที่รู้จักกันดีในชื่อ "nim sum" หากคุณมีผลรวมของสองเกม (นั่นคือคุณกำลังเคลื่อนไหวในเกมหนึ่งครั้ง) ค่าของตำแหน่งคือผลรวม nim ของค่าของตำแหน่งในแต่ละเกม แต่เราสามารถก้าวไปอีกขั้น ด้วยการเพิ่ม nim และนิยามที่เหมาะสมของการคูณ nimเราสามารถสร้างเขตข้อมูลจากจำนวนเต็มที่ไม่ใช่ค่าลบ ดังนั้นความท้าทายคือการคูณกอล์ฟ คำนิยาม การทวีคูณของ Nim เป็นไปตามกฎต่อไปนี้: ผลิตภัณฑ์ nim ของ Fermat 2-power n = (2 ^ (2 ^ k)) ที่มีจำนวนน้อยกว่าเป็นผลิตภัณฑ์สามัญ ผลิตภัณฑ์ nim ของ Fermat 2-power n ด้วยตัวมันเองคือ 3n / …
17 code-golf  math 

24
รับขั้นตอนตามลำดับ
ท้าทาย กำหนดลำดับของตัวเลขให้สร้างฟังก์ชั่นที่คืนค่าลำดับขั้นตอน สมมติว่าลำดับจะเป็น N >= 3 ลำดับจะทำซ้ำขั้นตอนอย่างน้อยหนึ่งครั้ง ลำดับจะมีตัวเลขตามธรรมชาติเท่านั้น ฟังก์ชั่นหรือโปรแกรมของคุณควรกลับลำดับขั้นตอนที่สั้นที่สุดที่เป็นไปได้ ตัวอย่าง: การป้อนข้อมูล: [1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15, 17] เอาท์พุท: [1, 1, 2] คำอธิบาย:1 => 2 (1 step), 2 => 3 (1 step), 3 => 5 (2 steps)ลำดับเริ่มต้นไปจาก จากนั้นมันจะเกิดซ้ำ ผลลัพธ์ก็คือ[1 step, 1 step, 2 steps] …

12
คลิปบอร์ดฟังก์ชั่น: คัดลอก
ความท้าทายนี้จะเกี่ยวข้องกับบางส่วนของคุณสมบัติภาษา MATL ที่เป็นส่วนหนึ่งของพฤษภาคม 2018 ภาษาของเดือนเหตุการณ์ ที่เกี่ยวข้องกับความท้าทาย : คลิปบอร์ดฟังก์ชั่น: วาง บทนำ MATL มีหลายคลิปบอร์ดซึ่งคุณสามารถจัดเก็บค่า (คัดลอก) เพื่อเรียกคืนได้ในภายหลัง (วาง) บางคลิปบอร์ดเป็นแบบอัตโนมัติซึ่งหมายความว่าการคัดลอกจะถูกทริกเกอร์โดยอัตโนมัติจากเหตุการณ์บางอย่าง ความท้าทายนี้จะเน้นที่หนึ่งใน clipbards อัตโนมัติที่เรียกว่าคลิปบอร์ดฟังก์ชั่นอินพุตหรือเพียงฟังก์ชั่นคลิปบอร์ด คลิปบอร์ดนี้จัดเก็บอินพุตไปยังการโทรล่าสุดทั้งสี่ไปยังฟังก์ชั่นถ่ายภาพปกติ ฟังก์ชั่นปกติเป็นประเภทที่พบมากที่สุดของฟังก์ชั่นใน MATL การรับข้อมูลหมายความว่าฟังก์ชั่นรับอินพุตอย่างน้อยหนึ่งฟังก์ชั่น (ฟังก์ชั่นที่ไม่มีการป้อนข้อมูลใด ๆ จะไม่ได้รับการพิจารณาโดยคลิปบอร์ดฟังก์ชั่น) นี่เป็นการอธิบายที่ดีที่สุดด้วยตัวอย่างต่อไปนี้ซึ่งใช้สองฟังก์ชั่นปกติ: +ซึ่งปรากฏตัวเลขสองตัวจากสแต็กและเพิ่มผลรวมของพวกเขา Uซึ่งจะปรากฏตัวเลขหนึ่งและผลักสแควร์ของมัน ตัวอย่างที่ 1 : 3 2 + 6 + 12 4 U + + ก่อ39ผล รหัสถูกตีความดังนี้: จำนวนตัวอักษรเช่น3หรือ12ถูกผลักไปที่สแต็ก ฟังก์ชั่นเช่น+ป๊อปอินพุทและดันเอาต์พุตไปยังสแต็ก การเรียกใช้ฟังก์ชันตามลำดับเวลาคือ: 3 2 + …
17 code-golf  number 

26
น้ำตาลทรายยาอายุวัฒนะ
ใน Elixir รายการ (ที่เชื่อมโยง) อยู่ในรูปแบบ[head | tail]ที่ส่วนหัวสามารถเป็นอะไรก็ได้และtailเป็นรายการของส่วนที่เหลือของรายการและ[]- รายการที่ว่างเปล่า - เป็นข้อยกเว้นเพียงอย่างเดียว รายการสามารถเขียนได้เช่นเดียวกับ[1, 2, 3]ที่เทียบเท่า[1 | [2 | [3 | []]]] งานของคุณคือการแปลงรายการตามที่อธิบายไว้ ข้อมูลที่ป้อนจะเป็นรายการที่ถูกต้อง (ใน Elixir) ที่มีเฉพาะตัวเลขที่ตรงกับ regex\[(\d+(, ?\d+)*)?\]regex คุณสามารถรับอินพุตด้วย (หนึ่งช่องว่างหลังจากแต่ละเครื่องหมายจุลภาค) หรือไม่มีช่องว่าง เอาต์พุตอาจมี (หนึ่งช่องว่างก่อนและหลังแต่ละ|ช่อง) หรือไม่มีช่องว่าง สำหรับอินพุตที่มีเลขศูนย์นำหน้าคุณสามารถส่งออกโดยไม่มีเลขศูนย์หรือด้วย อินพุตต้องถูกใช้เป็นสตริง (หากเขียนฟังก์ชัน) เช่นเดียวกับเอาต์พุต ตัวอย่าง [] -> [] [5] -> [5 | []] [1, 7] -> [1 | …

4
อักขระข้ามตัวอักษร
พื้นหลัง ฉันเห็น Venn Diagram ที่น่าสนใจในวิกิพีเดีย: https://simple.wikipedia.org/wiki/Alphabet#/media/File:Venn_diagram_gr_la_ru.svg มันแสดงให้เห็นตัวอักษร (รูปร่างทางกายภาพ) ในตัวอักษรที่แตกต่างกันที่มีร่วมกันระหว่างตัวอักษรรัสเซีย, กรีกและละติน ความท้าทาย กำหนดสตริงอินพุตของอักขระจากสคริปต์ทั้งสามที่แสดง (เช่นตัวอักษรกรีกตัวอักษร Cyrillic หรือตัวอักษรละติน) ส่งออกเปอร์เซ็นต์ของสตริงที่ตรงกับแต่ละภาษา นับตัวอักษรซ้ำ ๆ ทุกครั้ง ยกตัวอย่างเช่นเป็นตัวอักษรละตินเท่านั้นดังนั้นผลลัพธ์คือFFLURSFFLURS is 100% Latin, 0% Cyrillic and 0% Greek ในทางตรงกันข้ามจะเกิดขึ้นอย่างสมบูรณ์ของตัวอักษรที่ปรากฏในทุกภาษาที่สามเพื่อส่งออกเป็นTOX BEAM PHPTOX BEAM PHP is 100% Cyrillic, 100% Greek and 100% Latin ตารางการค้นหา แผนภาพ Venn เป็นแหล่งที่มาของตัวอักษรด้านล่าง: ละตินเท่านั้น: J,G,S,D,Q,U,V,W,F,L,R ละตินและซิริลลิก: C, С …

19
การตรวจสอบสตริงปกติ
คำอธิบาย: รับสายเป็นอินพุตให้ตรวจสอบว่าเป็นเลขลำดับที่ถูกต้องเป็นภาษาอังกฤษหรือไม่ ถ้ามันเป็นความจริงกลับค่าที่ถูกต้องมิฉะนั้นจะส่งกลับค่าเท็จ (แนะนำโดย @Arnauld. ขอบคุณ. โดย @JoKing) สำหรับผู้ใช้ที่ต้องการทราบเกี่ยวกับเลขลำดับไปที่นี่: https://www.mathsisfun.com/numbers/cardinal-ordinal-chart.html (แนะนำโดย: qwr) อินพุตที่เป็นไปได้: 21st ---> true 12nd ---> false 1nd ---> false .... นี่เป็นความท้าทายของการเขียนโค้ดดังนั้นรหัสที่สั้นที่สุดในแต่ละภาษาจะเป็นผู้ชนะ ตัวอย่าง : console.log('12th' , true) // This evaluates to true console.log('1st' , true) // also evaluates to true console.log('21nd' , false) // returns false console.log('11st' , …

23
เรียงลำดับหมายเลขที่สะกดออก
รับรายการหมายเลขซีเรียลที่สะกดสองตัวหรือมากกว่าที่มีความยาวเท่ากันมากกว่าสองตัวอย่าง [[ "three" , "one" , "four" ], [ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "five" , "eight" ]] เรียงลำดับรายการตามตัวเลขที่คำว่า: [[ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "one" , "four" …

7
1D Hopping Array Maze
แรงบันดาลใจจากเราทำทาวเวอร์กระโดดและเกี่ยวข้องกับ2D Maze Minus 1D บทนำ งานของคุณคือการหาเส้นทางที่สั้นที่สุดที่จะออกจากเขาวงกตอาร์เรย์ตามกฎที่ระบุ ท้าทาย อาร์เรย์ 1D a ที่มีองค์ประกอบnถือได้ว่าเป็นเขาวงกตที่ประกอบด้วยจุดnซึ่งจุดที่มีดัชนีkเชื่อมต่อกับจุดที่มีk + a [ k ] และk - a [ k ] ในลักษณะทางเดียว ในคำอื่น ๆ คุณสามารถกระโดดไปข้างหน้าหรือข้างหลังตรง[ k ] ก้าวจากจุดที่มีค่าดัชนีk คะแนนที่มีดัชนีนอกขอบเขตของอาร์เรย์จะถูกพิจารณานอกเขาวงกต เพื่ออธิบายสิ่งนี้ให้พิจารณาอาร์เรย์ต่อไปนี้ [0,8,5,9,4,1,1,1,2,1,2] หากเราอยู่ที่องค์ประกอบที่ 5 ในขณะนี้เนื่องจากองค์ประกอบคือ 4 เราสามารถข้ามไปข้างหน้าไปยังองค์ประกอบที่ 9 หรือ 4 ขั้นตอนย้อนหลังไปยังองค์ประกอบที่ 1 ได้ ถ้าเราทำอย่างหลังเราจะจบลงด้วยองค์ประกอบ 0 ซึ่งบ่งชี้ว่าไม่มีการเคลื่อนไหวเพิ่มเติม ถ้าเราทำแบบเดิมเนื่องจากองค์ประกอบที่ 9 คือ 2 …

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