FastPrepFind Total Weight

Find Total Weight

JP Morgan Chase logoJP Morgan Chase● MediumOA
Learn

Problem statement

Stacey is coordinating a beach clean-up event with her university's Women in STEM Charity branch. The beach is covered with tin cans of varying weights arranged in a single line, indexed from 0 to n-1.

Stacey uses a scooper that can pick up three adjacent cans at a time. For each selection:

  • She identifies the lightest remaining can, with weight w
  • She uses the scooper to pick up that can along with its two adjacent cans (or fewer if at the edge)
  • She continues this process until there are no cans left on the beach

If multiple cans have the lightest weight, Stacey selects the one with the smallest index. If a can has fewer than two adjacent cans, she removes the available adjacent cans.

Determine the sum of the weights of the lightest cans she picks in each selection.

Function

findTotalWeight(cans: int[]) → int

Complete the function findTotalWeight in the editor with the following parameters:

  • int cans[n]: the weights of the cans on the beach

Examples

Example 1

cans = [5, 4, 1, 3, 2]return = 3

Let there be n = 5 cans on the beach with weights represented by cans = [5, 4, 1, 3, 2].

  • First, choose the minimum weight, i.e., 1, and add that weight to the total. The cans with weights 4, 1, and 3 are removed. The array of cans is now [5, 2].
  • Then choose the minimum weight, i.e., 2, and add that weight to the total. The cans with weights 2 and 5 are removed, and there are no more cans on the beach.

Hence, the total is 1 + 2 = 3.

More JP Morgan Chase problems

See JP Morgan Chase hiring insights
public int findTotalWeight(int[] cans) {
  // write your code here
}
cans[5, 4, 1, 3, 2]
expected3
Checking account…