0Pricing
Coding Interview Prep · บทเรียน

ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม

รวมค่าลิสต์ในการวนผ่านเพียงรอบเดียว

ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม เป็นบทเรียน Coding Interview Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Coding Interview Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Coding Interview Prep มีบทเรียนทั้งหมด 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) และปลดล็อคส่วนที่เหลือของคอร์ส Coding Interview Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Coding Interview Prep มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม”

รวมค่าลิสต์ในการวนผ่านเพียงรอบเดียว คุณปฏิบัติ Coding Interview Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Coding Interview Prep หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Coding Interview Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Coding Interview Prep นี้ได้ไหม

ได้ บทเรียน Coding Interview Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ลิสต์ การจัดทำดัชนี และการตัดช่วงสำหรับ CP
  2. สร้างอาร์เรย์อย่างรวดเร็วด้วยนิพจน์สร้างข้อมูล
  3. ค่าต่ำสุด ค่าสูงสุด ผลรวม และยอดสะสม
  4. ค้นหาดัชนี ไม่ใช่แค่ค่า
← กลับไปที่ Coding Interview Prep