Mittel 0 gelöst 0% Erfolgsquote

Number Spiral Lookup

Find a value by row and column in an expanding number spiral.

Das lernst du

  • Find a formula in a number pattern
  • Split the problem by layer and parity
  • Use 64-bit integers for large values

Problem

Übersetzung anzeigen

The infinite spiral starts at the top-left cell. The first four rows and columns are shown below. Continue the same pattern in expanding square layers. Coordinates start at 1.

 1   2   9  10
 4   3   8  11
 5   6   7  12
16  15  14  13

Return one cell value without constructing the entire grid.

Implement number_spiral(row, column).

Input

row: The row counted from the top, starting at 1.

column: The column counted from the left, starting at 1.

Output

Return the number at that position.

Einschränkungen

1 ≤ row, column ≤ 1,000,000,000. The value fits a signed 64-bit integer.

Beispiele

Beispiel 1
Eingabe:
row = 3
column = 2

Erwartete Ausgabe:
expected = 6
Eingabe:
long long row = 3;
long long column = 2;

Erwartete Ausgabe:
long long expected = 6;
Eingabe:
long row = 3;
long column = 2;

Erwartete Ausgabe:
long expected = 6;

Erläuterung

In the displayed third row, the second value is 6.

Beispiel 2
Eingabe:
row = 1
column = 4

Erwartete Ausgabe:
expected = 10
Eingabe:
long long row = 1;
long long column = 4;

Erwartete Ausgabe:
long long expected = 10;
Eingabe:
long row = 1;
long column = 4;

Erwartete Ausgabe:
long expected = 10;

Erläuterung

The fourth square layer begins at 10 in the top row.

So gehst du vor

Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.

Hinweis 1

The spiral is built in square layers, so a cell belongs to a layer determined by the larger coordinate.

Hinweis 2

Use the parity of that layer to decide whether values increase along a row or a column.

Hinweis 3

Pay attention to whether the layer reaches from the top-left corner or the opposite corner first.

Erwartete Komplexität

O(1) time, O(1) extra space

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.