Problem Β· Array

Minimize Warehouse Transfer Cost

Learn this problem
● HardAmazonNEW GRADOA
See Amazon hiring insights

Problem statement

Note πŸ“ - Initially, I thought this problem might be a duplicate of an existing one, but I wasn't able to find it. If you happen to come across it as a duplicate, please let us know! Thank you so much in advance!! You are the best!! 🐿️

Updated on 06-23-2026 :D This problem has been confirmed as a duplicate version of Find Minimum Cost. Huge thanks to the friend in the solution section who helped identify the duplicate 🧑! I'd recommend practicing the linked version as it is more complete.

Duplicate problem found solution screenshot

Basically, Amazon has its warehouses lined up in a circle, you can start from any warehouse move in either clockwise or anti-clockwise direction, the direction must remain the same throughout the remaining moves.

Each warehouse stores some items. The goal is to collect excess items from some warehouses and deliver them to others need them, so that each warehouse stores the same number of items in the end (guaranteed).

The distance between 2 adjacent warehouses is 1, and the cost of each product transfer is the distance the product is moved.

Function

minimizeWarehouseTransferCost(warehouses: int[]) β†’ long

Complete the function minimizeWarehouseTransferCost in the editor.

minimizeWarehouseTransferCost has the following parameter:

  1. int[] warehouses: an array of integers representing the number of items in each warehouse

Returns

long integer: the minimum cost to make all warehouses store the same number of items

Examples

Example 1

warehouses = [6, 6, 6, 3, 4]return = 7

The source compares two possible routes with costs 7 and 8. Since the problem asks for the minimum cost, the example output is 7.

We can optimally start from the first warehouse and collect 1 item, repeat the same for the following 2 warehouses and deliver 2 to the 4th warehouse and 1 to the 5th warehouse. In the end, each warehouse has 5 items and the total cost is 1 + 2 + 3 + 1 = 7. This is just a possible clockwise move, the optimal cost should consider the anti-clockwise direction as well and return the minimum cost.

More Amazon problems

drafts saved locally
public long minimizeWarehouseTransferCost(int[] warehouses) {
  // write your code here
}
warehouses[6, 6, 6, 3, 4]
expected7
checking account