国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【LeetCode每日一題】——946.驗證棧序列

這篇具有很好參考價值的文章主要介紹了【LeetCode每日一題】——946.驗證棧序列。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一【題目類別】

二【題目難度】

  • 中等

三【題目編號】

  • 946.驗證棧序列

四【題目描述】

  • 給定 pushed 和 popped 兩個序列,每個序列中的 值都不重復,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回 true;否則,返回 false 。

五【題目示例】

  • 示例 1:

    • 輸入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
    • 輸出:true
    • 解釋:我們可以按以下順序執(zhí)行:
      • push(1), push(2), push(3), push(4), pop() -> 4,
      • push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1
  • 示例 2:

    • 輸入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
    • 輸出:false
    • 解釋:1 不能在 2 之前彈出。

六【題目提示】

  • 1 < = p u s h e d . l e n g t h < = 1000 1 <= pushed.length <= 1000 1<=pushed.length<=1000
  • 0 < = p u s h e d [ i ] < = 1000 0 <= pushed[i] <= 1000 0<=pushed[i]<=1000
  • p u s h e d 的所有元素互不相同 pushed 的所有元素 互不相同 pushed的所有元素互不相同
  • p o p p e d . l e n g t h = = p u s h e d . l e n g t h popped.length == pushed.length popped.length==pushed.length
  • p o p p e d 是 p u s h e d 的一個排列 popped 是 pushed 的一個排列 poppedpushed的一個排列

七【解題思路】

  • 直接使用棧去模擬整個過程
  • 將pushed數組的值入棧,直到與poped數組中的某一個元素相等,此時說明當前棧頂的元素需要出棧,且繼續(xù)比較poped數組中的下一個元素
  • 因為兩個輸入數組的長度相等,所以遍歷結束后,如果棧還有剩余,說明出棧順序不合理,那么就返回false,否則返回true

八【時間頻度】

  • 時間復雜度: O ( n ) O(n) O(n), n n n為傳入數組的長度
  • 空間復雜度: O ( n ) O(n) O(n), n n n為傳入數組的長度

九【代碼實現】

  1. Java語言版
class Solution {
    public boolean validateStackSequences(int[] pushed, int[] popped) {
        Deque<Integer> stack = new LinkedList<Integer>();
        int index = 0;
        for(int i = 0;i<pushed.length;i++){
            stack.push(pushed[i]);
            while(!stack.isEmpty() && popped[index] == stack.peek()){
                stack.pop();
                index++;
            }
        }
        return stack.isEmpty();
    }
}
  1. C語言版
bool validateStackSequences(int* pushed, int pushedSize, int* popped, int poppedSize)
{
    int* stack = (int*)malloc(sizeof(int) * 1001);
    int top = -1;
    int index = 0;
    for(int i = 0;i<pushedSize;i++)
    {
        stack[++top] = pushed[i];
        while(top != -1 && popped[index] == stack[top])
        {
            top--;
            index++;
        }
    }
    return top == -1;
}
  1. Python語言版
class Solution:
    def validateStackSequences(self, pushed: List[int], popped: List[int]) -> bool:
        stack = []
        index = 0
        for i in range(0,len(pushed)):
            stack.append(pushed[i])
            while len(stack) != 0 and popped[index] == stack[-1]:
                stack.pop()
                index += 1
        return len(stack) == 0
  1. C++語言版
class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
        stack<int> st;
        int index = 0;
        for(int i = 0;i<pushed.size();i++){
            st.push(pushed[i]);
            while(!st.empty() && popped[index] == st.top()){
                st.pop();
                index++;
            }
        }
        return st.empty();
    }
};

十【提交結果】

  1. Java語言版
    【LeetCode每日一題】——946.驗證棧序列,LeetCode,算法,數據結構,LeetCode,棧,946.驗證棧序列

  2. C語言版
    【LeetCode每日一題】——946.驗證棧序列,LeetCode,算法,數據結構,LeetCode,棧,946.驗證棧序列

  3. Python語言版
    【LeetCode每日一題】——946.驗證棧序列,LeetCode,算法,數據結構,LeetCode,棧,946.驗證棧序列

  4. C++語言版
    【LeetCode每日一題】——946.驗證棧序列,LeetCode,算法,數據結構,LeetCode,棧,946.驗證棧序列文章來源地址http://www.zghlxwxcb.cn/news/detail-610560.html

到了這里,關于【LeetCode每日一題】——946.驗證棧序列的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • ( 動態(tài)規(guī)劃) 516. 最長回文子序列 ——【Leetcode每日一題】

    ( 動態(tài)規(guī)劃) 516. 最長回文子序列 ——【Leetcode每日一題】

    難度:中等 給你一個字符串 s ,找出其中最長的回文子序列,并返回該序列的長度。 子序列定義為:不改變剩余字符順序的情況下,刪除某些字符或者不刪除任何字符形成的一個序列。 示例 1: 輸入:s = “bbbab” 輸出:4 解釋:一個可能的最長回文子序列為 “bbbb” 。 示例

    2024年02月06日
    瀏覽(29)
  • ( 動態(tài)規(guī)劃) 674. 最長連續(xù)遞增序列 / 718. 最長重復子數組——【Leetcode每日一題】

    ( 動態(tài)規(guī)劃) 674. 最長連續(xù)遞增序列 / 718. 最長重復子數組——【Leetcode每日一題】

    難度:簡單 給定一個未經排序的整數數組,找到最長且 連續(xù)遞增的子序列 ,并返回該序列的長度。 連續(xù)遞增的子序列 可以由兩個下標 l 和 r(l r) 確定,如果對于每個 l = i r ,都有 nums[i] nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是連續(xù)遞增子序列。

    2024年02月05日
    瀏覽(24)
  • 2023年7月2日leetcode每日一題打卡——125.驗證回文串

    2023年7月2日leetcode每日一題打卡——125.驗證回文串

    125. 驗證回文串 - 力扣(LeetCode) 如果在將所有大寫字符轉換為小寫字符、并移除所有非字母數字字符之后,短語正著讀和反著讀都一樣。則可以認為該短語是一個? 回文串 。 字母和數字都屬于字母數字字符。 給你一個字符串 s,如果它是 回文串 ,返回 true ;否則,返回

    2024年02月12日
    瀏覽(19)
  • 【LeetCode - 每日一題】449. 序列化和反序列化二叉搜索樹(23.09.04)

    給定一棵二叉搜索樹,實現序列化和反序列化; 注意 val 范圍,因此 在序列化時需要插入分隔符分割每個節(jié)點的 val ; 要善于利用 二叉搜索樹的特性(中序遍歷 = 遞增排序) ; 前序遍歷 + 中序遍歷 可以重構一棵樹,又由于二叉搜索樹自帶中序遍歷,因此在序列化時保存前

    2024年02月10日
    瀏覽(17)
  • 每日一題:LeetCode-589.N叉樹的前序遍歷序列構造二叉樹

    每日一題:LeetCode-589.N叉樹的前序遍歷序列構造二叉樹

    前言: ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ????如果說代碼有靈魂,那么它的靈魂一定是???? 算法 ????,因此,想要寫出??優(yōu)美的程序??,核心算法是必不可少的,少年,你渴望力量嗎????,想掌握程序的靈魂嗎???那么就必須踏上這樣一條漫長

    2024年02月05日
    瀏覽(30)
  • 【每日算法 && 數據結構(C++)】—— 13 | 求最長自增子序列(解題思路、流程圖、代碼片段)

    【每日算法 && 數據結構(C++)】—— 13 | 求最長自增子序列(解題思路、流程圖、代碼片段)

    Today’s quote is: \\\"Actions speak louder than words. 今天的一句話是:“行動勝于言辭 求最長遞增子序列 最長遞增子序列是指在給定序列中,找到一個最長的子序列,使得子序列中的元素按照遞增的順序排列。 例如,對于序列 [1, 3, 2, 5, 4, 7, 6],其中的最長遞增子序列可以是 [1, 2, 4,

    2024年02月12日
    瀏覽(19)
  • 【算法與數據結構】98、LeetCode驗證二叉搜索樹

    【算法與數據結構】98、LeetCode驗證二叉搜索樹

    所有的LeetCode題解索引,可以看這篇文章——【算法和數據結構】LeetCode題解。 ?? 思路分析 :注意不要落入下面你的陷阱,筆者本來想左節(jié)點鍵值中間節(jié)點鍵值右節(jié)點鍵值即可,寫出如下代碼: ??在leetcode執(zhí)行時遇到下面的錯誤,再次讀題,發(fā)現是所有左子樹的鍵值小于

    2024年02月09日
    瀏覽(30)
  • 每日一題之判斷子序列

    題目鏈接 給定字符串 s 和 t ,判斷 s 是否為 t 的子序列。 字符串的一個子序列是原始字符串刪除一些(也可以不刪除)字符而不改變剩余字符相對位置形成的新字符串。(例如, \\\"ace\\\" 是 \\\"abcde\\\" 的一個子序列,而 \\\"aec\\\" 不是)。 示例 1: 示例 2: 提示: 0 = s.length = 100 0 = t.le

    2024年02月16日
    瀏覽(17)
  • 【算法與數據結構】106、LeetCode從中序與后序遍歷序列構造二叉樹

    【算法與數據結構】106、LeetCode從中序與后序遍歷序列構造二叉樹

    所有的LeetCode題解索引,可以看這篇文章——【算法和數據結構】LeetCode題解。 ?? 思路分析 :首先我們要知道后序遍歷數組的最后一個元素必然是根節(jié)點,然后根據根節(jié)點在中序遍歷數組中的位置進行劃分,得到根節(jié)點的左右子樹遍歷數組,以此遞歸。當然這里有一個前提

    2024年02月10日
    瀏覽(24)
  • 每日一題之最長連續(xù)遞增序列

    題目鏈接 給定一個未經排序的整數數組,找到最長且 連續(xù)遞增的子序列 ,并返回該序列的長度。 連續(xù)遞增的子序列 可以由兩個下標 l 和 r ( l r )確定,如果對于每個 l = i r ,都有 nums[i] nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是連續(xù)遞增子序列。

    2024年02月12日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包