@Raul

Beg your pardon for taking your time ...

This is what I did (as an approach); maybe I learn something from you (or somebody else) proving me wrong.

Anyway, this seems to work on the given set of data:

Taking  the mean of the column heights

   ] v=. 2 6 7 4 1 7
2 6 7 4 1 7
   am=. +/ % #
   am v
4.5

gives a "compacted" rectangle of 4.5 times 6 (base) = 27 units of area.

IIf I 'floor' the mean

   ] mf=. <. am v
4

and take a look at which columns exceed (the floor of ) the mean I get this matrix

   v,:mf<: v
2 6 7 4 1 7
0 1 1 1 0 1

Here I got stuck with my coding, so I will describe in words only what I intend to do further on:

* Extract the indices of the largest (longest) block of 1s (1..3) and calculate its length (3)
* Within that block search for the lowest column value (4)
* Multiply block length (3) with lowest column value within that range (4) to obtain a rectangle area of 3*4 = 12 units.

Thanks for your patience.
-M

At 2017-06-20 16:07, you wrote:

Both of those are valid answers.

The problem is simply to determine the largest area.

Thanks,

--
Raul


On Tue, Jun 20, 2017 at 11:58 AM, 'Pascal Jasmin' via Programming
<[email protected]> wrote:
> is the answer to your example, 6x2 or 4x3?



> ________________________________
> From: Raul Miller <[email protected]>
> To: Programming forum <[email protected]>
> Sent: Tuesday, June 20, 2017 11:30 AM
> Subject: [Jprogramming] largest rectangle problem



> Something I stumbled over today.


> If we have a series of bars of varying height, what's the largest

> rectangle that can be drawn over the bars without covering any empty

> space.


> For example:


>    '*'#"0~2 6 7 4 1 7

> **

> ******

> *******

> ****

> *

> *******


> I'll post a solution later, and I'll be interested in seeing if it's

> basically the only obvious approach or if there's a variety of good

> approaches. (I have reason to believe, though, that there's a better

> way than what I came up with.)


> Thanks,


> --

> Raul

> ----------------------------------------------------------------------

> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to