맥스 물통
2147 단어 javascriptalgorithms
면적과 답은 49입니다.
두 인덱스 사이의 거리를 확인한 다음 두 인덱스의 최소값을 곱했기 때문에 이 숫자를 얻었습니다.
첫 번째 부분인 너비를 살펴보겠습니다. 면적을 찾는 것은 너비와 높이의 곱이기 때문입니다.
result = (j-i)*min(height[j], height[i])
______
7
height = [1,8,6,2,5,4,8,3,7]
_ _
1 8
8-1 = 7
이제 두 번째 부분을 살펴보겠습니다. 높이.
result = (j-i)*min(height[j], height[i])
___________________
7
height = [1,8,6,2,5,4,8,3,7]
_ _
8 7
min(7, 8) = 7
그리고 재미를 위한 마지막 단계를 수행하고 이들을 함께 곱한 다음 코드로 넘어가겠습니다.
result = (j - i)*min(height[j], height[i])
___________________ _________________________
7 * 7
**= 49**
그리고 그것이 우리가 답을 얻는 방법입니다.
가장 먼저 원하는 것은 변수를 선언하는 것입니다. i는 왼쪽에 있고 j는 오른쪽에 있습니다.
그런 다음 좌우로 움직이기를 원할 것입니다.
function maxWater (array) {
let i = 0
let j = array.length - 1
let area = 0
}
이제 배열을 통해 반복을 시작하고 두 포인터가 서로 만날 때까지 while 루프를 사용하여 반복합니다.
function maxWater (array) {
let i = 0
let j = array.length - 1
let area = 0
while (i < j) {
const temp = (j - i).Math.min(array[j], array[i])
}
}
그런 다음 영역을 업데이트하고 i와 j를 이동합니다. 이 경우 큰 숫자를 이동하는 것은 도움이 되지 않으므로 낮은 숫자만 이동합니다.
function maxWater (array) {
let i = 0
let j = array.length - 1
let area = 0
while (i < j) {
const temp = (j - i).Math.min(array[j], array[i])
area = Math.max(temp, area)
if (array[i] > array[j]) {
array[j]-=1
}
else {
array[i]+=1
}
}
return area
}
Reference
이 문제에 관하여(맥스 물통), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/seth_king/max-water-container-4poe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)