ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

หมุนอาเรย์

หมุนลิสต์ไปทางขวาตามจำนวนขั้นที่กำหนด

หมุนลิสต์ไปทางขวาตามจำนวน steps ตำแหน่ง: โดยนำสมาชิกตัวสุดท้ายมาไว้ข้างหน้า ทำซ้ำทั้งหมด steps ครั้ง

ให้เขียนฟังก์ชัน rotate_right(numbers, steps)

อินพุต

numbers: ลิสต์ของจำนวนเต็ม steps: จำนวนตำแหน่งที่ต้องหมุน

เอาต์พุต

คืนค่าลิสต์ที่ถูกหมุนแล้ว

เงื่อนไข

0 ≤ ความยาว ≤ 100,000; 0 ≤ steps ≤ 10⁹

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
steps = 2
numbers = [1, 2, 3, 4, 5]

ผลลัพธ์ที่คาดหวัง:
expected = [4, 5, 1, 2, 3]
อินพุต:
long long steps = 2;
std::vector<long long> numbers = {1, 2, 3, 4, 5};

ผลลัพธ์ที่คาดหวัง:
std::vector<long long> expected = {4, 5, 1, 2, 3};
อินพุต:
long steps = 2;
long[] numbers = new long[] {1, 2, 3, 4, 5};

ผลลัพธ์ที่คาดหวัง:
long[] expected = new long[] {4, 5, 1, 2, 3};

คำอธิบาย

หมุนขวา 2 ครั้ง: [5, 1, 2, 3, 4], จากนั้น [4, 5, 1, 2, 3]

ตัวอย่างที่ 2
อินพุต:
steps = 3
numbers = [1, 2, 3]

ผลลัพธ์ที่คาดหวัง:
expected = [1, 2, 3]
อินพุต:
long long steps = 3;
std::vector<long long> numbers = {1, 2, 3};

ผลลัพธ์ที่คาดหวัง:
std::vector<long long> expected = {1, 2, 3};
อินพุต:
long steps = 3;
long[] numbers = new long[] {1, 2, 3};

ผลลัพธ์ที่คาดหวัง:
long[] expected = new long[] {1, 2, 3};

คำอธิบาย

หมุนจำนวนเท่ากับความยาวลิสต์จะได้ลิสต์เดิม: [1, 2, 3]

แหล่งอ้างอิง

โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก