DDSA
Advertisement

2460. Apply Operations to an Array

Time: O(n)
Space: O(n)

Approach

Merge equal adjacent pairs (double first, zero second); shift non-zeros to front.

2460.cs
C#
// Approach: Merge equal adjacent pairs (double first, zero second); shift non-zeros to front.
// Time: O(n) Space: O(n)

public class Solution
{
    public int[] ApplyOperations(int[] nums)
    {
        int[] ans = new int[nums.Length];

        for (int i = 0; i + 1 < nums.Length; ++i)
        {
            if (nums[i] == nums[i + 1])
            {
                nums[i] *= 2;
                nums[i + 1] = 0;
            }
        }

        int index = 0;
        foreach (int num in nums)
        {
            if (num > 0)
                ans[index++] = num;
        }

        return ans;
    }
}
Advertisement
Was this solution helpful?