Giải pháp HackerRank máy in tròn trong C++

John Watson biết về một phép toán gọi là phép quay vòng phải trên một mảng các số nguyên. Một thao tác xoay sẽ di chuyển phần tử mảng cuối cùng đến vị trí đầu tiên và dịch chuyển tất cả các phần tử còn lại sang phải một. Để kiểm tra khả năng của Sherlock, Watson cung cấp cho Sherlock một dãy số nguyên. Sherlock là thực hiện thao tác xoay một số lần sau đó xác định giá trị của phần tử tại một vị trí nhất định

Đối với mỗi mảng, thực hiện một số phép quay tròn bên phải và trả về các giá trị của các phần tử tại các chỉ số đã cho

Ví dụ

a = [3,4,5]

k = 2

truy vấn = [1,2]

Ở đây k là số lần quay trên a và các truy vấn chứa danh sách các chỉ số cần báo cáo. Đầu tiên chúng tôi thực hiện hai phép quay. [3,4,5] -> [5,3,4] -> [4,5,3]

Bây giờ hãy trả lại các giá trị từ các chỉ số dựa trên số không 1 và 2 như được chỉ ra trong mảng truy vấn

a[1] = 5

a[5] = 3

Mô tả chức năng

Hoàn thành chức năng circleArrayRotation trong trình chỉnh sửa bên dưới

circleArrayRotation có [các] tham số sau

  • int a[n]. mảng để xoay
  • int k. số vòng quay
  • truy vấn int[1]. các chỉ số để báo cáo

trả lại

  • int[q]. các giá trị trong phần được xoay theo yêu cầu trong

Định dạng đầu vào

Dòng đầu tiên chứa 3 số nguyên n, k và q, số phần tử trong mảng số nguyên, số vòng quay và số truy vấn

Dòng thứ hai chứa n số nguyên được phân tách bằng dấu cách, trong đó mỗi số nguyên i mô tả phần tử mảng  a[i] [trong đó 0

Chủ Đề