Skip to content

Latest commit

 

History

History
75 lines (70 loc) · 2.33 KB

File metadata and controls

75 lines (70 loc) · 2.33 KB

1441. 用栈操作构建数组

https://leetcode-cn.com/problems/build-an-array-with-stack-operations/

Java

/*
 * @Author: Goog Tech
 * @Date: 2020-09-01 20:10:12
 * @LastEditTime: 2020-09-01 20:10:32
 * @Description: https://leetcode-cn.com/problems/build-an-array-with-stack-operations/
 * @FilePath: \leetcode-googtech\#1441. Build an Array With Stack Operations\Solution.java
 * @WebSite: https://algorithm.show/
 */

class Solution {
    public List<String> buildArray(int[] target, int n) {
        // 初始化结果列表
        List<String> result = new LinkedList<>();
        // 初始化数组下标
        int i = 0;
        // 遍历 1 到 N 之间所有的数值
        for(int j = 1; j <= n; j++) {
            // 若当前数组下标与数组长度值相同则跳出并结束循环
            if(i == target.length) {
                break;
            }
            // 若当前下标所指的数组元素与当前 j 值相同,
            // 则将 Push 字符存储到结果列表中,并向后移动数组元素指针
            if(target[i] == j) {
                result.add("Push");
                i++;
            // 反之则说明数组中缺失当前数值 j
            }else {
                result.add("Push");
                result.add("Pop");
            }
        }
        // 返回结果列表
        return result;
    }
}

Python

'''
Author: Goog Tech
Date: 2020-09-01 20:10:17
LastEditTime: 2020-09-01 20:10:39
Description: https://leetcode-cn.com/problems/build-an-array-with-stack-operations/
FilePath: \leetcode-googtech\#1441. Build an Array With Stack Operations\Solution.py
WebSite: https://algorithm.show/
'''

class Solution(object):
    def buildArray(self, target, n):
        """
        :type target: List[int]
        :type n: int
        :rtype: List[str]
        """
        # 初始化结果列表
        result = []
        # 遍历 1 到 n 之间所有的数值
        for num in range(1, target[-1] + 1):
            # 将 Push 字符存储到结果列表中
            result.append('Push')
            # 若当前数值 num 在数组 target 不存在,则说明数组中缺失数值 num
            if num not in target:
                # 进而将 Pop 字符添加到结果列表中
                result.append('Pop')
        # 返回结果列表
        return result