โจทย์
ดูต้นฉบับ (ภาษาอังกฤษ)แถวแรกคือ [1] แต่ละแถวถัดไปจะขึ้นต้นและลงท้ายด้วย 1 ทุกค่าภายในแถวเป็นผลรวมของสองค่าที่อยู่เหนือขึ้นไป Return แถวแรกถึงแถวที่ rows โดยเริ่มจากแถวที่มี 1 ตัวเดียว
ให้เขียนฟังก์ชัน pascals_triangle(rows)
อินพุต
rows: จำนวนแถวที่ต้องการสร้าง
เอาต์พุต
คืนลิสต์ของแต่ละแถว โดยเริ่มจากแถวบนสุด แต่ละแถวเป็นลิสต์ของจำนวนเต็ม
เงื่อนไข
0 ≤ rows ≤ 60 ทุกค่าจะอยู่ในช่วงของ signed 64-bit integer ถ้า rows เป็น 0 ให้คืนลิสต์ว่าง
ตัวอย่าง
อินพุต:
rows = 4
ผลลัพธ์ที่คาดหวัง:
expected = [
[1],
[1, 1],
[1, 2, 1],
[1, 3, 3, 1]
]
อินพุต:
long long rows = 4;
ผลลัพธ์ที่คาดหวัง:
std::vector<std::vector<long long>> expected = {
{1},
{1, 1},
{1, 2, 1},
{1, 3, 3, 1}
};
อินพุต:
long rows = 4;
ผลลัพธ์ที่คาดหวัง:
long[][] expected = new long[][] {
new long[] {1},
new long[] {1, 1},
new long[] {1, 2, 1},
new long[] {1, 3, 3, 1}
};
คำอธิบาย
เลข 2 ในแถวที่ 3 ได้จาก 1 + 1 ส่วนเลข 3 สองตัวในแถวที่ 4 ได้จาก 1 + 2 และ 2 + 1
อินพุต:
rows = 0
ผลลัพธ์ที่คาดหวัง:
expected = []
อินพุต:
long long rows = 0;
ผลลัพธ์ที่คาดหวัง:
std::vector<std::vector<long long>> expected = {};
อินพุต:
long rows = 0;
ผลลัพธ์ที่คาดหวัง:
long[][] expected = new long[][] {};
คำอธิบาย
ไม่ได้ร้องขอแถวใดเลย จึงต้องคืนลิสต์ว่าง
แหล่งอ้างอิง
โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน