ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม
รวมค่าลิสต์ในการวนผ่านเพียงรอบเดียว
ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม เป็นบทเรียน Competitive Programming Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Competitive Programming Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Competitive Programming Academy มีบทเรียนทั้งหมด 4 บทเรียน
รวมค่าในการวนรอบเดียว
หลายปัญหาต้องการเพียงตัวเลขเดียวจากอาร์เรย์ ฟังก์ชันพื้นฐานของ Python ทำการรวมค่านี้ด้วยการวนผ่านลิสต์เพียงรอบเดียวอย่างรวดเร็ว
a = [4, 1, 7, 3]หาผลรวม
sum(a) จะบวกสมาชิกทุกตัวแล้วคืนค่าผลรวม ฟังก์ชันนี้ทำงานเร็วระดับ C จึงควรใช้แทนการเขียนลูปสะสมค่าเอง
total = sum(a) # 15ค่าน้อยที่สุดและมากที่สุด
min(a) และ max(a) จะคืนค่าที่น้อยที่สุดและมากที่สุด โดยตรวจดูทั้งลิสต์หนึ่งครั้ง ใช้เวลา O(n)
lo, hi = min(a), max(a)เปรียบเทียบตัวเลขสองตัว
min และ max ยังรับอาร์กิวเมนต์แยกกันได้ด้วย max(x, y) จะเลือกค่าที่มากกว่าจากสองค่าโดยไม่ต้องสร้างลิสต์ก่อน
best = max(score, best)รวมค่าโดยใช้คีย์
ส่งฟังก์ชันคีย์เพื่อเปรียบเทียบจากค่าที่คำนวณขึ้นมา max(words, key=len) จะคืนคำที่ยาวที่สุด ไม่ใช่คำที่มากที่สุดตามลำดับพจนานุกรม
longest = max(words, key=len)ป้องกันลิสต์ว่าง
min และ max จะทำงานล้มเหลวเมื่อเจอลิสต์ว่าง ส่ง default= หรือ ตรวจสอบความยาวก่อน เพื่อหลีกเลี่ยงข้อผิดพลาดขณะทำงาน
hi = max(a, default=0)แนวคิดผลรวมสะสม
ผลรวมสะสมจะเก็บผลบวกไว้ขณะที่คุณไล่ดูอาร์เรย์ แนวคิดนี้เป็นพื้นฐานของผลรวมคำนำหน้าและเทคนิคการนับอีกมากมาย
run = 0
for x in a:
run += xติดตามค่าที่ดีที่สุดจนถึงตอนนี้
เก็บตัวแปรค่าที่ดีที่สุดจนถึงตอนนี้ขณะตรวจดูข้อมูล เพื่อแก้ปัญหาในลักษณะผลรวมช่วงย่อยสูงสุดได้ด้วยการวนรอบเดียว
best = a[0]
for x in a:
best = max(best, x)สร้างลิสต์ผลรวมคำนำหน้า
เก็บผลรวมสะสมทุกค่าไว้ในลิสต์เพื่อสร้างอาร์เรย์ผลรวมคำนำหน้า จากนั้นคุณจะตอบผลรวมของช่วงได้ด้วยการลบสมาชิกสองตัวออกจากกัน
pre = [0]
for x in a:
pre.append(pre[-1] + x)ทางลัดด้วย accumulate
itertools.accumulate จะสร้างผลรวมสะสมให้คุณ ดังนั้นอาร์เรย์ผลรวมคำนำหน้าจึงเขียนได้ในบรรทัดเดียวอย่างไว้วางใจได้
from itertools import accumulate
pre = list(accumulate(a))ระวังความเข้าใจผิดเรื่องค่าล้น
ข่าวดีคือ จำนวนเต็มของ Python มีขนาดไม่จำกัด ดังนั้นผลรวมขนาดใหญ่จะไม่เกิดค่าล้น ความเสี่ยงที่แท้จริงคือโค้ดทำงานช้า ไม่ใช่การคำนวณผิด
huge = sum(range(10**6)) # fineตรวจสอบอย่างรวดเร็ว
คุณต้องการหาคำที่ยาวที่สุดในลิสต์ ควรเรียกใช้แบบใด
ทบทวน: พลังของการวนรอบเดียว
ตอนนี้คุณสามารถหาผลรวม ค่าต่ำสุดและสูงสุด รวมทั้งเก็บผลรวมสะสมได้ในการกวาดข้อมูลเพียงครั้งเดียว การรวมค่าเหล่านี้เปลี่ยนปัญหาเกี่ยวกับอาร์เรย์จำนวนมากให้กลายเป็นลูปเดียว ✨
คำถามที่พบบ่อย
บทเรียน “ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Competitive Programming Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Competitive Programming Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม”
รวมค่าลิสต์ในการวนผ่านเพียงรอบเดียว คุณปฏิบัติ Competitive Programming Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Competitive Programming Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Competitive Programming Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Competitive Programming Academy นี้ได้ไหม
ได้ บทเรียน Competitive Programming Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ลิสต์ การจัดทำดัชนี และการตัดช่วงสำหรับ CP
- สร้างอาร์เรย์อย่างรวดเร็วด้วยนิพจน์สร้างข้อมูล
- ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม
- ค้นหาดัชนี ไม่ใช่แค่ค่า