호수의 양
예 높이 [1,3,2,4,1,3,1,4,5,2,2,1,4,2]의 배열이 주어지면 15를 반환합니다(부피가 1,7,7인 수역 3개) 15의 총 부피를 산출합니다).
Input: [1,3,2,4,1,3,1,4,5,2,2,1,4,2]
Output: 15
내 접근 방식:
If
current가 maximumBefore 또는 maximumAfter보다 큽니다. maximumBefore를 업데이트하고 계속하면 else
현재 높이의 볼륨은 (minimum of maximumAfter, maximumBefore) - height
가 됩니다. 암호:
var a = [1,3,2,4,1,3,1,4,5,2,2,1,4,2];
function getVolume (arr) {
let maxBefore = 0;
let answer = 0;
let maxAfter = 2;
for(var i = 1; i < arr.length-1; i++){
if(arr[i] >= arr[maxBefore]) {
maxBefore = i;
continue;
}
if(i >= maxAfter){
let max = i+1;
for(var innerIndex =i+1; innerIndex< arr.length; innerIndex +=1) {
if(arr[max]<=arr[innerIndex]) {
max= innerIndex;
}
}
maxAfter = max;
}
if(arr[i] < arr[maxBefore] && arr[i] < arr[maxAfter]) {
answer += Math.min(arr[maxBefore], arr[maxAfter])-arr[i];
}
}
return answer;
}
let sol = getVolume(a);
console.log('volume of lakes: ',sol); //volume of lakes: 15
토론 상자에서 귀하의 접근 방식에 대해 논의하거나 [email protected]으로 저를 연락할 수 있습니다.
읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(호수의 양), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aasthatalwaria/volume-of-lakes-3hka텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)