배열 섞기(Javascript)
5363 단어 algorithmsjavascript
Given the array nums consisting of 2n elements in the form
[x1,x2,...,xn,y1,y2,...,yn].
Return the array in the form [x1,y1,x2,y2,...,xn,yn].
내 임무는 카드 한 벌처럼 배열의 요소를 함께 섞는 것입니다. 이 문제는 Javascripts
.push()
방법으로 간단합니다.var shuffle = function(nums, n) {
let arr = [];
for ( let i=0; i<n; i++ ) {
arr.push(nums[i], nums[i+n])
};
return arr;
};
arr
을 선언합니다. for
보다 클 때까지 실행되는 n
루프를 시작합니다. push()
현재 인덱스 nums[i]
및 nums[i + n]
를 반환 배열 arr
로 반환합니다. n
반복 후 새 배열을 반환합니다.push()
없이 접근했을 때 난이도가 높아졌다. 액세스해야 하는 인덱스를 추적하는 데 문제가 있어 화이트보드에 적어 두었습니다. 그것을 쓰고 난 후에 나는 패턴을 찾을 수 있었다. 반복할 때마다 내가 필요한 카운터를 정리했습니다.저는 4개의 변수
i, y, x, b
로 끝났습니다. i
는 내 코드 블록의 반환 배열에 대한 첫 번째 인덱스를 가리켰습니다. y
는 반환 배열의 두 번째 인덱스를 가리켰습니다. 이 두 변수는 각 반복마다 2씩 증가했습니다. x
는 입력 배열의 첫 번째 인덱스를 가리켰습니다. b
는 입력 배열의 두 번째 인덱스를 가리켰습니다. 이 두 변수는 각 반복마다 1씩 증가했습니다. 패턴을 잡으려면 정말 철저해야 했습니다. 그 후 나는 내가 해야 할 일을 빠르게 추론할 수 있었습니다. 이것이 나의 최종 해결책이었습니다.var shuffle = function(nums, n) {
const arr = [];
let i = 0
for ( let x=0; x < n; x++) {
arr[i] = nums[x];
arr[i+1] = nums[x+n];
i+=2;
};
return arr;
};
arr
을 선언합니다. i
를 선언합니다. for
가 x
보다 클 때까지 실행되는 n
루프를 시작합니다. arr[i]
를 nums[x]
로 설정arr[i+1]
를 nums[x+n]
로 설정i
2x < n
Reference
이 문제에 관하여(배열 섞기(Javascript)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/javila35/shuffle-the-array-javascript-4jd7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)