我是靠谱客的博主 潇洒果汁,最近开发中收集的这篇文章主要介绍leetcode初级算法 设计问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

设计问题

    • shuffle an array
    • 最小栈

shuffle an array

直接copy了别人的代码,用了库函数random_shuffle(iterator1,iterator2)
代码:

class Solution {
public:
    vector<int>  m_nums;

    Solution(vector<int> nums) : m_nums(nums){

    }

    /** Resets the array to its original configuration and return it. */
    vector<int> reset() {
        return m_nums;
    }

    /** Returns a random shuffling of the array. */
    vector<int> shuffle() {
        vector<int> temp(m_nums);
        random_shuffle(temp.begin(),temp.end());
        return temp;
    }
};

最小栈

也是copy的代码,需要好好理解。
来一个,如果符合比目前最小的更小,就入min。
出栈的时候,如果不是目前最小,就一般出,否则min也出。
AC代码:

class MinStack {
public:
    /** initialize your data structure here. */
    MinStack() {
    }
    
    void push(int x) {
        s.push(x);
        if(min.empty()||min.top()>=x)
            min.push(x);
    }
    
    void pop() {
        if(min.top()==s.top())
            min.pop();
         s.pop();
    }
    
    int top() {
        return s.top();
    }
    
    int getMin() {
        return min.top();
    }
    private:
    stack<int> s;
        stack<int> min;
};

最后

以上就是潇洒果汁为你收集整理的leetcode初级算法 设计问题的全部内容,希望文章能够帮你解决leetcode初级算法 设计问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部