You are not logged in.

wcf.regNote.message

Marf01

Beginner

  • "Marf01" started this thread

Posts: 1

  • Send private message

1

Monday, February 28th 2005, 7:04pm

Beispiel

Könnte mir mal jemand bei einem Beispiel helfen?

Beispiel: Eine Perlenkette der Länge n besteht aus 2 verschiedenen Perlenarten. Ermittle die Stelle der Perlenkette, an der man sie aufschneiden muss, um von der einen Seite Perlen der einen Art und von der anderen Seite Perlen der anderen Art wegzunehmen, wobei die Summe der weggenommen Perlen maximal sein muss.

Bitte helfen!!!!!!!!!

Danke!

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

2

Tuesday, March 1st 2005, 8:56am

versteh ich des richtig des du des it javascript schreiben willst oder musst?

Also mal als Text wie ich da ran gehen würde:
Ich gehe mal davon aus, des ich ein Array mit n Elementen bekomme, die Elemente sind entweder True oder False (2 Perlenarten). So jetzt mach ich mir ein neues Array mit max. n/2 (aufgerundet) Elementen, die ein Struct von der Art
{PseudoCode}
struct:
int AnfangTrue;
int EndeTrue;
int AnfangFalse;
int EndeFalse;
{/PseudoCode}

So wenn ich jetzt das Perlenkettenarray von 0 - n durchgehe, schau ich beim index 0 nach ist der true oder false, ist er true nehme ich mein Array und setzte beim Index 0 AnfangTrue auf 0 und dann gehe ich solange weiter in der Perlenkette bis ich auf False treffe, dann trage ich in meinem Array, immer noch bei index 0, bei EndeTrue CurrentIndex_Perlenkette - 1 ein und AnfangFalse CurrentIndex_Perlenkette. Dann geh ich weiter bis ich auf das nächste Element mit True stoße und setzte in meinem Array Index 0, EndeFalse auf CurrentIndex_Perlenkette - 1 und dann in meinem Array Index 1, Anfang True auf CurrentIndex_Perlenkette. usw. usw. usw.
Des geht natürlich auch wenn False den Anfang mach.

So jetzt mus ich nur noch mein Array durchgehen und immer die zwei Abstände mir behalten von True und False und von den paaren das entsprechende Maximum mir suchen. Fertig, die Stelle an der getrennt werden muss ist zwischen EndeTrue und AnfangFalse bzw. EndeFalse und AnfangTrue je nachdem welcher Anfang grösser ist.

Dann bekommt man die max. möglichen True und False Kombination.

Ciao Ephraim

wcf.user.socialbookmarks.titel