LeetCode in Kotlin

1441. Build an Array With Stack Operations

Easy

You are given an array target and an integer n.

In each iteration, you will read a number from list = [1, 2, 3, ..., n].

Build the target array using the following operations:

Return a list of the operations needed to build target. The test cases are generated so that the answer is unique.

Example 1:

Input: target = [1,3], n = 3

Output: [“Push”,”Push”,”Pop”,”Push”]

Explanation:

Read number 1 and automatically push in the array -> [1]

Read number 2 and automatically push in the array then Pop it -> [1]

Read number 3 and automatically push in the array -> [1,3]

Example 2:

Input: target = [1,2,3], n = 3

Output: [“Push”,”Push”,”Push”]

Example 3:

Input: target = [1,2], n = 4

Output: [“Push”,”Push”]

Explanation: You only need to read the first 2 numbers and stop.

Constraints:

Solution

class Solution {
    fun buildArray(target: IntArray, n: Int): List<String> {
        val result: MutableList<String> = ArrayList()
        val set: MutableSet<Int> = HashSet()
        for (i in target) {
            set.add(i)
        }
        val max = target[target.size - 1]
        for (i in 1..n) {
            if (!set.contains(i)) {
                result.add("Push")
                result.add("Pop")
            } else {
                result.add("Push")
            }
            if (i == max) {
                break
            }
        }
        return result
    }
}