รายการจำนวนเต็มบวกสามารถมองเห็นเป็นเทือกเขาเชิงปริมาณโดยที่แต่ละรายการแสดงถึงความสูงของส่วนแนวตั้งหนึ่งส่วนของภูเขา
ตัวอย่างเช่นรายการ
1, 2, 2, 3, 4, 3, 5, 3, 2, 1, 2, 3, 3, 3, 2, 2, 1, 3
สามารถกลายเป็นช่วง
x
x x
xxxxx xxx x
xxxxxxxx xxxxxx x
xxxxxxxxxxxxxxxxxx
(คนบทกวีน้อยอาจเรียกแผนภูมิแท่งนี้ว่า แต่ฉันพูดนอกเรื่อง)
คำถามในการท้าทายนี้คือ: มีพีคส์จำนวนเท่าใดที่อยู่ในเทือกเขาของรายการโดยพลการ? โดยพื้นฐานแล้วจำนวนท้องถิ่นสูงสุดอยู่ในรายการ?
จุดสูงสุดถูกกำหนดให้เป็นส่วนที่ต่อเนื่องกันของหนึ่งหรือมากกว่าหนึ่งคอลัมน์ของเทือกเขาที่มีความสูงเท่ากันโดยที่คอลัมน์ทางด้านซ้ายและด้านขวาในทันทีมีความสูงต่ำกว่า
เป็นเรื่องง่ายที่จะบอกด้วยสายตาว่าตัวอย่างมีสี่จุดสูงสุดในตำแหน่งที่วงเล็บเหล่านี้:
1, 2, 2, 3, (4), 3, (5), 3, 2, 1, 2, (3, 3, 3), 2, 2, 1, (3)
สังเกตได้อย่างไรว่า (3, 3, 3)
ส่วนที่ราบสูงนับเป็นจุดสูงสุดเนื่องจากเป็นชุดของคอลัมน์ที่ต่อเนื่องกันซึ่งมีความสูงเท่ากับคอลัมน์ที่อยู่ใกล้เคียง
สุดท้าย(3)
นับว่าเป็นจุดสูงสุดด้วยเช่นกันเพราะสำหรับจุดประสงค์ของการท้าทายนี้เราจะกำหนดเพื่อนบ้านด้านซ้ายของคอลัมน์ด้านซ้ายสุดและเพื่อนบ้านด้านขวาของคอลัมน์ด้านขวาสุดให้เป็นศูนย์สูง
ซึ่งหมายความว่ารายการที่มีเพียงหนึ่งค่าเท่านั้น1, 1, 1
สามารถตีความได้ว่าเป็นเช่น0, 1, 1, 1, 0
นั้นและมียอดเขาหนึ่งไม่ใช่ไม่ใช่:0, (1, 1, 1), 0
และทำให้มีหนึ่งสูงสุดไม่ไม่มี:
รายการเดียวที่มีศูนย์จุดสูงสุดเป็นรายการที่ว่างเปล่า
ท้าทาย
เขียนฟังก์ชั่นหรือโปรแกรมที่ใช้ในรายการเลขจำนวนเต็มบวกและพิมพ์หรือส่งกลับจำนวนของจุดสูงสุดในเทือกเขาที่สอดคล้องกัน
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะTiebreaker เป็นโพสต์ก่อนหน้า
กรณีทดสอบ
Input List -> Output Peak Count
[empty list] -> 0
1, 1, 1 -> 1
1, 2, 2, 3, 4, 3, 5, 3, 2, 1, 2, 3, 3, 3, 2, 2, 1, 3 -> 4
1 -> 1
1, 1 -> 1
2, 2, 2, 2, 2 -> 1
90 -> 1
2, 1, 2 -> 2
5, 2, 5, 2, 5 -> 3
2, 5, 2, 5, 2, 5, 2 -> 3
1, 2, 3, 4 -> 1
1, 2, 3, 4, 1, 2 -> 2
1, 3, 5, 3, 1 -> 1
7, 4, 2, 1, 2, 3, 7 -> 2
7, 4, 2, 1, 2, 1, 2, 3, 7 -> 3
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 -> 10
1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1 -> 10
2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 -> 10
1, 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, 3, 3, 3, 1 -> 4
12, 1, 2, 1, 2, 3, 3, 3, 2, 4, 4, 4, 1, 5, 5, 4, 7, 9 -> 6
87, 356, 37673, 3676, 386, 909, 909, 909, 909, 454, 909, 909 -> 3
87, 356, 37673, 3676, 386, 909, 909, 909, 909, 454, 909, 908, 909 -> 4