어레이를 왼쪽으로 회전
이 왼쪽 회전 질문은 1자리를 왼쪽으로 또는 n자리를 왼쪽으로 회전하라고 말할 수 있습니다. 이 게시물에서 둘 다 볼 수 있습니다.
Bonus:- lets look into collections built-in rotate for right and left rotate
왼쪽으로 1자리 회전하는 것을 볼 수 있습니다.
int[] reverseTheArrayByOne(int[] arr) {
int temp = arr[0];
for (int i = 1; i < arr.length; i++) {
arr[i - 1] = arr[i];
}
arr[arr.length - 1] = temp;
return arr;
}
한 자리만 이동하기 때문에 첫 번째 자리는 temp에 저장하고 나머지 요소는 왼쪽으로 이동한 다음 임시를 마지막 인덱스에 추가합니다.
N 회전을 보자
답을 얻기 위해 1 자리 회전을 N 번 실행하여 N 회전을 간단히 수행할 수 있습니다.
int[] reverseTheArrayByNTimesEasy(int[] arr, int digits) {
for (int i = 0; i < digits; i++) {
arr = reverseTheArrayByOne(arr);
}
return arr;
}
또는 이 방법을 사용할 수 있습니다.
int[] reverseTheArrayByNDigits(int[] arr, int digits) {
int[] temp = new int[digits];
for(int i=0;i<digits;i++){
temp[i]=arr[i];
}
for(int i=0;i<arr.length-digits;i++){
arr[i]=arr[digits+i];
}
for(int i=0;i<temp.length;i++){
arr[digits-1+i]=temp[i];
}
return arr;
}
N 자리를 회전하기 위해 임시 배열을 사용하여 N 자리를 저장하고 나머지 자리를 처음으로 이동하고 임시 배열을 마지막으로 복사할 수 있습니다.
Bonus :- we can simply use collections rotate method to perform this array Rotate
int n = 1;
int[] arr = {2, 5, 8, 9, 12};
List<Integer> arrList =
Arrays.stream(arr).mapToObj((e) -> Integer.valueOf(e)).collect(Collectors.toList());
Collections.rotate(arrList,n);
System.out.println(arrList.toString());
여기서 n은 회전할 자릿수입니다. 기본적으로 Collections.rotate는 오른쪽 회전을 수행합니다. 왼쪽 회전을 원하면 음수 값을 줄 수 있습니다.
Collections.rotate(arrList, 1)는 오른쪽 회전을 수행합니다.
Collections.rotate(arrList,-1) 왼쪽 회전을 수행합니다.
Reference
이 문제에 관하여(어레이를 왼쪽으로 회전), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ajayk/left-rotate-the-array-78c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)