Skip to content

Latest commit

 

History

History

squirrel-simulation

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

< Previous                  Next >

There's a tree, a squirrel, and several nuts. Positions are represented by the cells in a 2D grid. Your goal is to find the minimal distance for the squirrel to collect all the nuts and put them under the tree one by one. The squirrel can only take at most one nut at one time and can move in four directions - up, down, left and right, to the adjacent cell. The distance is represented by the number of moves.

Example 1:

Input: 
Height : 5
Width : 7
Tree position : [2,2]
Squirrel : [4,4]
Nuts : [[3,0], [2,5]]
Output: 12
Explanation:
​​​​​

Note:

  1. All given positions won't overlap.
  2. The squirrel can take at most one nut at one time.
  3. The given positions of nuts have no order.
  4. Height and width are positive integers. 3 <= height * width <= 10,000.
  5. The given positions contain at least one nut, only one tree and one squirrel.

Related Topics

[Array] [Math]

Hints

Hint 1 Will Brute force solution works here? What will be its complexity?
Hint 2 Brute force definitely won't work here. Think of some simple solution. Take some example and make some observations.
Hint 3 Will order of nuts traversed by squirrel is important or only first nut traversed by squirrel is important?
Hint 4 Are there some paths which squirrel have to cover in any case? If yes, what are they?
Hint 5 Did you notice only first nut traversed by squirrel matters? Obviously squirrel will choose first nut which will result in minimum distance.