題意:第一行輸入三個整數m n k,分別代表棧容量,進棧序列長度,待核實的出棧序列行數
隨後k行輸入出棧序列,要求核實其是否是乙個可能的出棧序列
分析:根據題意,出棧元素只能是從1到n
可以根據當前的出棧元素,判斷棧內剩餘元素數量以及棧頂元素
又通過剩餘元素數量及棧頂元素判斷下乙個出棧元素是否符合棧要求
**如下
#include
using
namespace std;
int stack[
1005];
int num[
1001];
intmain()
if(0== flag)
continue;if
(cnt <=
0) top =0;
if(0== j && now > m)
if(now < top)
//出棧元素不能比棧頂元素小
if(now == top)
else
else}if
(max < now) max = now;}if
(1== flag)
printf
("yes\n");
else
printf
("no\n");
}}
詳解 02線性結構4 Pop Sequence
譯文 給定乙個堆疊,最多可以保留m個數字。按1 2 3,n 1 2 3,n 1 2 3,n的順序按n個數字,然後隨機彈出。請確定給定的數字序列是否是堆疊的可能彈出序列。例如,如果m為5,n為7,我們可以從堆疊中獲得1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7,但...
線性結構練習 4
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...
02 線性結構3 Pop Sequence
題目有一點要注意,就是樣例的第五組 1 7 6 5 4 3 2 1可以先出,23456入棧之後,7不能入棧了,所以是不行的 杭電1022有差不多的圖可以理解一下 用stl寫的,c太麻煩不想寫 include include include include include include using ...