From 44c919f87344c2c4c81b66d6ea95753a041655b8 Mon Sep 17 00:00:00 2001 From: Christoph Prybila Date: Thu, 2 Apr 2020 00:04:19 +0200 Subject: [PATCH] Added description and testdata --- README.md | 32 ++++++++++++++++++++++++++++++++ doc/stock-price.JPG | Bin 0 -> 51062 bytes settings.gradle | 2 +- src/test/resources/testdata.csv | 17 +++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 doc/stock-price.JPG diff --git a/README.md b/README.md index e69de29..9f9f470 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,32 @@ +# Buy and Sell Once + +## Goal +Given is the price-development of an arbitrary stock. + +![stock-price over time](doc/stock-price.JPG) + +Suppose you have perfect knowledge and are able to buy and sell the stock once. +Write an algorithm that outputs the maximum profit that can be made. + + * The price-development is given for an arbitrary number of days. + * A stock can only be sold on the next day. + * Stock-prices are given as integers + +### Input +A blank-separated array of stock-prices. + +Each position symbolises the stock-price of a given day. + +### Output +The maximum profit that can be made within that day. + +### Constraints + * 2 <= `days with stock-prices` <= 50 + * 1 <= `stock-price` <= 2,147,483,647 + +### Example +**Input:** +`310 315 275 295 260 270 290 230 255 250` + +**Output:** +`30` \ No newline at end of file diff --git a/doc/stock-price.JPG b/doc/stock-price.JPG new file mode 100644 index 0000000000000000000000000000000000000000..7f2a70536a5f785e4e2657d46e2023035f1893d5 GIT binary patch literal 51062 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 VJTaS1u$`Ig$@q<}qJ!^W{13EI|3Ux& literal 0 HcmV?d00001 diff --git a/settings.gradle b/settings.gradle index d5271ef..d95f4ab 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name = 'template' +rootProject.name = 'buy-and-sell-once' diff --git a/src/test/resources/testdata.csv b/src/test/resources/testdata.csv index e69de29..0716aa4 100644 --- a/src/test/resources/testdata.csv +++ b/src/test/resources/testdata.csv @@ -0,0 +1,17 @@ +310 315 275 295 260 270 290 230 255 250, 30 +1 2, 1 +30 29, 0 +0 0, 0 +1 0, 0 +0 1, 1 +226 177 465 365 425 178 328 325 428 165, 288 +17 261 266 202 246 220 420 390 120 206, 403 +100 100 40 40 40 70 70 70, 30 +404 370 48 478 386 157 48 500 443 345, 452 +404 370 48 478 386 157 152 500 443 345, 452 +404 370 500 48 478 386 157 152 443 345, 430 +71622 29778 49278 43266 35321 64004 11569 15358 76325 46324 21209 68079 14505 16821 19481 45622 15044 91459 44742 14731 32402 97619 18531 23351 46294 6443 42565 43976 10390 89339 50414 80745 70068 68925 6460 71966 82808 76650 51168 37177 62789 6277 81398 91852 88771 91089 41410 51305 62464 46015, 86050 +68941 71600 57442 66633 95154 35131 42141 99811 63172 48106 8475 98869 38000 53928 19145 40854 12274 62055 98571 75665 5203 17280 97920 92034 78957 87443 77211 86404 19438 32631 89925 10809 77909 41390 96105 78035 78285 21024 35521 13358 67241 17009 33381 59371 55581 46024 97347 42960 29149 31541, 92717 +50475 99931 71645 4336 47287 16439 28493 22806 45724 60734 55445 41931 90369 7416 49331 87500 56317 76342 64624 22835 63579 20350 46476 73361 30444 21531 12824 59458 38753 71993 58684 8816 86301 22702 23316 5111 44782 69841 42297 98631 23986 78318 25994 77107 2844 25915 81602 80089 45663 20118, 94295 +31415 57223 42652 20693 88629 96495 39321 61282 16147 73229 18819 91069 8584 40336 18775 16328 96503 62165 96146 95743 94957 8990 41718 73242 42438 80072 55036 19633 82085 86487 29457 91539 32383 72521 84821 97564 85805 69144 65539 62642 95499 51508 18834 76619 84593 10853 34456 25352 70698 89234, 88980 +7580 99445 81284 81448 72881 98705 29410 11793 3574 43699 11461 41322 7330 22885 27159 55953 89069 76241 18863 4448 29988 87771 70582 16636 56644 71363 64399 69087 61412 81993 46698 87018 4856 4805 94973 57420 569 95761 1778 90433 99965 5663 48030 40092 71133 21890 20249 64628 29807 90259, 99396 \ No newline at end of file