Sie erhalten ein Array / eine Liste / einen Vektor von Ganzzahlpaaren, die kartesische Koordinaten von Punkten auf einer euklidischen 2D-Ebene darstellen. Alle Koordinaten liegen zwischen und , Duplikate sind zulässig. Finden Sie den Bereich der konvexen Hülle dieser Punkte, gerundet auf die nächste ganze Zahl; Ein exakter Mittelpunkt sollte auf die nächste gerade ganze Zahl gerundet werden. Sie können Gleitkommazahlen in Zwischenberechnungen verwenden, aber nur, wenn Sie garantieren können, dass das Endergebnis immer korrekt ist. Dies ist Code-Golf , also gewinnt das kürzeste richtige Programm.
Die konvexe Hülle einer Menge von Punkten ist die kleinste konvexe Menge, die enthält . Auf der euklidischen Ebene ist es für jeden einzelnen Punkt der Punkt selbst; für zwei verschiedene Punkte ist es die Linie, die sie enthält, für drei nicht kollineare Punkte ist es das Dreieck, das sie bilden, und so weiter.
Eine gute visuelle Erklärung dafür, was eine konvexe Hülle ist, lässt sich am besten beschreiben, indem man sich alle Punkte als Nägel in einem Holzbrett vorstellt und dann ein Gummiband um sie spannt, um alle Punkte einzuschließen:
Einige Testfälle:
Input: [[50, -13]]
Result: 0
Input: [[-25, -26], [34, -27]]
Result: 0
Input: [[-6, -14], [-48, -45], [21, 25]]
Result: 400
Input: [[4, 30], [5, 37], [-18, 49], [-9, -2]]
Result: 562
Input: [[0, 16], [24, 18], [-43, 36], [39, -29], [3, -38]]
Result: 2978
Input: [[19, -19], [15, 5], [-16, -41], [6, -25], [-42, 1], [12, 19]]
Result: 2118
Input: [[-23, 13], [-13, 13], [-6, -7], [22, 41], [-26, 50], [12, -12], [-23, -7]]
Result: 2307
Input: [[31, -19], [-41, -41], [25, 34], [29, -1], [42, -42], [-34, 32], [19, 33], [40, 39]]
Result: 6037
Input: [[47, 1], [-22, 24], [36, 38], [-17, 4], [41, -3], [-13, 15], [-36, -40], [-13, 35], [-25, 22]]
Result: 3908
Input: [[29, -19], [18, 9], [30, -46], [15, 20], [24, -4], [5, 19], [-44, 4], [-20, -8], [-16, 34], [17, -36]]
Result: 2905