01/10/2018, 16:35
Block swap algorithm for array rotation
Mọi người cho em hỏi bài dưới nếu mảng 7 phần tử, n =2, d=10 thì sau khi swap 7 phần tử xong phải làm gì ạ? vì đề ko hề bắt là d < size mảng.
Write a function rotate(ar[], d, n) that rotates arr[] of size n by d elements.
Rotation of the above array by 2 will make array
Bài liên quan
Bạn có thể để ý: d = 7 thì sau khi xoay ta sẽ được một mảng y hệt như cũ, vậy nên chỉ cần xoay
d' = d % 7
là đượcTiện mình cũng đưa ra giải thuật bày này luôn Nếu bạn để ý chút thì sẽ thấy
size - d + vị trí của số đó trong mảng
A[d + vị trí của số đó trong mảng]
Nếu bạn vẫn chưa hiểu thì có thể xem qua code của mình ở đây nhé
ủa bạn ơi, bên kia size là length của mảng hay size là số phần dịch chuyển vậy? sao bạn lại để
int[] output = new int[size];
size là length của mảng bạn nhé
hình như đề size chỗ đó là số phần tử dịch chuyển mà
Trong thuật toán của mình thì size là length của mảng, bạn có thể đổi lại để giống đề. Mình chỉ đưa ra ý tưởng thôi
Cảm ơn bạn nhiều nha, thuật toán bạn hay quá, mình chẳng nghĩ ra được