FastPrepSide Largest Square 🟧

Side Largest Square 🟧

Microsoft logoMicrosoft● MediumFULLTIMEOA
Learn

Problem statement

You have m square tiles of size 1 * 1 and n square tiles of size 2 * 2. Your task is to create the largest possible square using these tiles. Tiles may not overlap, and the resulting square should be filled (it should not contain empty spaces).

Let's now write a func called sideLargetstSquare(int m, int n) in the editor πŸ‘‰

Task of your func:

  • Find the len of the side of the largest square you can create. If no square can be created, func should return 0.

Function

sideLargetstSquare(m: int, n: int) β†’ int

Examples

Example 1

m = 8n = 0return = 2

You can use four out of eight tiles to arrange them into 2 * 2 square. There are not enough tiles to create 3 * 3 square.

Example 2

m = 4n = 3return = 4
Example 2 illustration

You can obtain 4 * 4 square by arranging four 1 * 1 tiles into a 2 * 2 square, and surrounding it by 2 * 2 tiles:

Example 3

m = 0n = 18return = 8

You need to use sixteen 2 * 2 tiles to create the square. Not that not all the tiles are used.

Example 4

m = 13n = 3return = 5
Example 4 illustration

One of the possible arrangements is shown in the following image:

Constraints

  • 1 <= m, n <= 1,000,000,000

More Microsoft problems

See Microsoft hiring insights
public int sideLargetstSquare(int m, int n) {
  // write your code here
}
m8
n0
expected2
Checking account…