There are N rectangular buildings standing along the road next to each other. The K-th building is of size H[K] × 1.
Because a renovation of all of the buildings is planned, we want to cover them with rectangular banners until the renovations are finished. Of course, to cover a building, the banner has to be at least as high as the building. We can cover more than one building with a banner if it is wider than 1.
For example, to cover buildings of heights 3, 1, 4 we could use a banner of size 4×3 (i.e. of height 4 and width 3), marked here in blue:
We can order at most two banners and we want to cover all of the buildings. Also, we want to minimize the amount of material needed to produce the banners.
What is the minimum total area of at most two banners which cover all of the buildings?
Write a function:
function solution(H);
that, given an array H consisting of N integers, returns the minimum total area of at most two banners that we will have to order.
Examples:
1. Given H = [3, 1, 4], the function should return 10. The result can be achieved by covering the first two buildings with a banner of size 3×2 and the third building with a banner of size 4×1:
2. Given H = [5, 3, 2, 4], the function should return 17. The result can be achieved by covering the first building with a banner of size 5×1 and the other buildings with a banner of size 4×3:
3. Given H = [5, 3, 5, 2, 1], your function should return 19. The result can be achieved by covering the first three buildings with a banner of size 5×3 and the other two with a banner of size 2×2:
4. Given H = [7, 7, 3, 7, 7], your function should return 35. The result can be achieved by using one banner of size 7×5:
5. Given H = [1, 1, 7, 6, 6, 6], your function should return 30. The result can be achieved by using banners of size 1×2 and 7×4:
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [1..100,000];
- each element of array H is an integer within the range [1..10,000].
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight =
const areasLeft = []
for(let i=0; i<H.length; i++){
areasRight.push()
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
for(let i=0; i<H.length; i++){
areasRight.push()
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
for(let i=0; i<H.length; i++){
if()
areasRight.push()
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
for(let i=0; i<H.length; i++){
if(H[i] >)
areasRight.push()
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
for(let i=0; i<H.length; i++){
if(H[i] > maxHLeft) maxHLeft = H[i]
areasRight.push()
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
if(H[i] > maxHLeft) maxHLeft = H[i]
areasRight.push()
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
if(H[i] > maxHLeft) maxHLeft = H[i]
areasRight.push()
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[r]
areasRight.push()
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push()
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push()
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasRight.push(maxHRight * (i+1))
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHRight * (i+1))
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log()
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasRight', areasRight)
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
}
Invalid result type, integer expected, 'undefined' found Perhaps you are missing a 'return'?stdout:
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
Invalid result type, integer expected, 'undefined' found Perhaps you are missing a 'return'?stdout:
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
Invalid result type, integer expected, 'undefined' found Perhaps you are missing a 'return'?stdout:
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
Invalid result type, integer expected, 'undefined' found Perhaps you are missing a 'return'?stdout:
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
Invalid result type, integer expected, 'undefined' found Perhaps you are missing a 'return'?stdout:
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
ret
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
return 0
}
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
for
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
for(let i=0; i)
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
for(let i=0; i<H.length; i++) {
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
for(let i=0; i<H.length; i++) {
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if(areasLeft[i])
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if(areasLeft[i])
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i])
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] - )
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] - areasRight[])
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] - areasRight[(H.length -1) - i])
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] - areasRight[(H.length -1) - i -])
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] - areasRight[(H.length -1) - i - 1])
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] - areasRight[(H.length -1) - i - 1] )
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] - areasRight[(H.length -1) - (i - 1)] < solution)
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if()
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<H.length; i++) {
if(i == H)
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
if(solut)
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
if(areasRight[0])
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
if(areasLeft[areas])
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
if(areasLeft[areasLeft.length - 1] < solution) solution =
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = 0
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length -1) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length ); i++) {
if(areasLeft[i] + areasRight[(H.length) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length); i++) {
if(areasLeft[i] + areasRight[(H.length) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length ) - (i - 1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length - 1) - (i)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length - 1) - (+)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
if(areasLeft[i] + areasRight[(H.length - 1) - (i+1)] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
Invalid result type, integer expected, non-integer number foundstdout:
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
Invalid result type, integer expected, non-integer number foundstdout:
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
Invalid result type, integer expected, non-integer number foundstdout:
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
if(areasLeft[i] + areasRight[] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
console.log('indexLeft', indexLef)
console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
console.log('indexLeft', indexLeft)
console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
solution.js:36 if(areasLeft[i] + areasRight[] < solution) ^ SyntaxError: Unexpected token ] at createScript (vm.js:80:10) at Object.runInNewContext (vm.js:135:10) at getSolution (/tmp/exec.js:392:29) at Promise.resolve.then (/tmp/exec.js:426:34) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3
solution.js:36 if(areasLeft[i] + areasRight[] < solution) ^ SyntaxError: Unexpected token ] at createScript (vm.js:80:10) at Object.runInNewContext (vm.js:135:10) at getSolution (/tmp/exec.js:392:29) at Promise.resolve.then (/tmp/exec.js:426:34) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3
solution.js:36 if(areasLeft[i] + areasRight[] < solution) ^ SyntaxError: Unexpected token ] at createScript (vm.js:80:10) at Object.runInNewContext (vm.js:135:10) at getSolution (/tmp/exec.js:392:29) at Promise.resolve.then (/tmp/exec.js:426:34) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3
solution.js:36 if(areasLeft[i] + areasRight[] < solution) ^ SyntaxError: Unexpected token ] at createScript (vm.js:80:10) at Object.runInNewContext (vm.js:135:10) at getSolution (/tmp/exec.js:392:29) at Promise.resolve.then (/tmp/exec.js:426:34) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3
solution.js:36 if(areasLeft[i] + areasRight[] < solution) ^ SyntaxError: Unexpected token ] at createScript (vm.js:80:10) at Object.runInNewContext (vm.js:135:10) at getSolution (/tmp/exec.js:392:29) at Promise.resolve.then (/tmp/exec.js:426:34) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
console.log('indexLeft', indexLeft)
console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[index] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
console.log('indexLeft', indexLeft)
console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[indexRight] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
ReferenceError: indexLeft is not defined at solution (solution.js:34:34) at solutionWrapper (/tmp/exec.js:402:28) at Promise.resolve.then (/tmp/exec.js:428:24) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3stdout:
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ]
ReferenceError: indexLeft is not defined at solution (solution.js:34:34) at solutionWrapper (/tmp/exec.js:402:28) at Promise.resolve.then (/tmp/exec.js:428:24) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3stdout:
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ]
ReferenceError: indexLeft is not defined at solution (solution.js:34:34) at solutionWrapper (/tmp/exec.js:402:28) at Promise.resolve.then (/tmp/exec.js:428:24) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3stdout:
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ]
ReferenceError: indexLeft is not defined at solution (solution.js:34:34) at solutionWrapper (/tmp/exec.js:402:28) at Promise.resolve.then (/tmp/exec.js:428:24) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3stdout:
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ]
ReferenceError: indexLeft is not defined at solution (solution.js:34:34) at solutionWrapper (/tmp/exec.js:402:28) at Promise.resolve.then (/tmp/exec.js:428:24) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) at Function.Module.runMain (module.js:686:11) at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3stdout:
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ]
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
console.log('indexLeft', indexLeft)
console.log('indexRight', i)
if(areasLeft[i] + areasRight[indexRight] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
console.log('indexLeft', i)
console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[indexRight] < solution)
solution = areasLeft[i] + areasRight[(H.length -1) - (i - 1)]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
Invalid result type, integer expected, non-integer number foundstdout:
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ] indexLeft 0 indexRight 1 indexLeft 1 indexRight 0
Invalid result type, integer expected, non-integer number foundstdout:
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ] indexLeft 0 indexRight 2 indexLeft 1 indexRight 1 indexLeft 2 indexRight 0
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ] indexLeft 0 indexRight 3 indexLeft 1 indexRight 2 indexLeft 2 indexRight 1 indexLeft 3 indexRight 0
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ] indexLeft 0 indexRight 3 indexLeft 1 indexRight 2 indexLeft 2 indexRight 1 indexLeft 3 indexRight 0
Invalid result type, integer expected, non-integer number foundstdout:
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ] indexLeft 0 indexRight 4 indexLeft 1 indexRight 3 indexLeft 2 indexRight 2 indexLeft 3 indexRight 1 indexLeft 4 indexRight 0
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
console.log('indexLeft', i)
console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[indexRight] < solution)
solution = areasLeft[i] + areasRight[indexRight]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
console.log('areasRight', areasRight)
console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
console.log('indexLeft', i)
console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[indexRight] < solution)
solution = areasLeft[i] + areasRight[indexRight]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
areasRight [ 4, 8, 12 ] areasLeft [ 3, 6, 12 ] indexLeft 0 indexRight 1 indexLeft 1 indexRight 0
areasRight [ 4, 8, 12, 20 ] areasLeft [ 5, 10, 15, 20 ] indexLeft 0 indexRight 2 indexLeft 1 indexRight 1 indexLeft 2 indexRight 0
areasRight [ 1, 4, 15, 20, 25 ] areasLeft [ 5, 10, 15, 20, 25 ] indexLeft 0 indexRight 3 indexLeft 1 indexRight 2 indexLeft 2 indexRight 1 indexLeft 3 indexRight 0
areasRight [ 7, 14, 21, 28, 35 ] areasLeft [ 7, 14, 21, 28, 35 ] indexLeft 0 indexRight 3 indexLeft 1 indexRight 2 indexLeft 2 indexRight 1 indexLeft 3 indexRight 0
areasRight [ 6, 12, 18, 28, 35, 42 ] areasLeft [ 1, 2, 21, 28, 35, 42 ] indexLeft 0 indexRight 4 indexLeft 1 indexRight 3 indexLeft 2 indexRight 2 indexLeft 3 indexRight 1 indexLeft 4 indexRight 0
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
//console.log('areasRight', areasRight)
//console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
// console.log('indexLeft', i)
// console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[indexRight] < solution)
solution = areasLeft[i] + areasRight[indexRight]
}
//if(areasLeft[areasLeft.length - 1] < solution) solution = areasLeft[areasLeft.length - 1]
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
//console.log('areasRight', areasRight)
//console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
// console.log('indexLeft', i)
// console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[indexRight] < solution)
solution = areasLeft[i] + areasRight[indexRight]
}
return solution
}
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(H) {
// write your code in JavaScript (Node.js 8.9.4)
const areasRight = []
let maxHRight = 0
const areasLeft = []
let maxHLeft = 0
let rightPos = H.length - 1
for(let i=0; i<H.length; i++){
// alturas maximas desde la derecha e izquierda
if(H[i] > maxHLeft) maxHLeft = H[i]
if(H[rightPos] > maxHRight) maxHRight = H[rightPos]
areasRight.push(maxHRight * (i+1))
areasLeft.push(maxHLeft * (i+1))
rightPos--
}
//console.log('areasRight', areasRight)
//console.log('areasLeft', areasLeft)
let solution = areasLeft[areasLeft.length - 1]
for(let i=0; i<(H.length - 1); i++) {
const indexRight = (H.length - 1) - (i+1)
// console.log('indexLeft', i)
// console.log('indexRight', indexRight)
if(areasLeft[i] + areasRight[indexRight] < solution)
solution = areasLeft[i] + areasRight[indexRight]
}
return solution
}
The solution obtained perfect score.
Values in the tests are arranged into ascending or descending pyramids. N=100,000.