日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

用法 stl_51Nod 2160 数字游戏 STL基本用法

發布時間:2023/11/27 生活经验 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用法 stl_51Nod 2160 数字游戏 STL基本用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 目錄
  • 1. 題目描述
    • 1.1. Limit
    • 1.2. Problem Description
    • 1.3. Input
    • 1.4. Output
    • 1.5. Sample Input
    • 1.6. Sample Output
    • 1.7. Source
  • 2. 解讀
  • 3. 代碼

1. 題目描述

1.1. Limit

Time Limit: 1000 ms
Memory Limit: 131072 kB

1.2. Problem Description

現在有

個數字依次進入一個棧,每個數字進入棧的時候,如果棧頂元素小于,則會將棧頂元素彈出,新的棧頂元素如果仍然小于,則會將新的棧頂元素繼續彈出,直到棧頂元素大于等于為止,才會加入棧。問個數字依次進入后,最后棧里的數字依次是?

1.3. Input

輸入第一行一個整數

,表示有個數字依次進入棧。 接下來行,每行一個整數,表示第個數字。

1.4. Output

若干行,表示最后棧中的數字。

1.5. Sample Input

5
5
3
2
4
1

1.6. Sample Output

5
4
1

1.7. Source

51Nod 2160 數字游戲

2. 解讀

使用STL中的 Vector 按照題目中的要求模擬棧的入棧出棧即可。

:在判斷棧頂元素是否小于即將入棧的元素的for循環中,不能使用 i < stack.size() 來判斷是否跳出循環,因為出棧時 stack.size() 會減1,這樣使用會導致循環最多只能遍歷一半棧中的元素。

3. 代碼

#include <iostream>
#include <string.h>
#include <vector>
using namespace std;int main()
{long long n;// 讀入nscanf("%lld", &n);// 初始化棧vector<int> stack;// 棧的深度long long stackDepth = 0l;// bufferlong long buffer;// 若大于0if (n > 0) {// 讀取第一個元素scanf("%lld", &buffer);// 入棧stack.push_back(buffer);// 深度加1stackDepth++;// 讀入入棧元素for (long long i = 1; i < n; i++) {// 讀取輸入scanf("%lld", &buffer);size_t sizeBuffer = stackDepth;for (size_t j = 0; j < sizeBuffer; j++) {// 若棧頂元素小于即將新入棧的元素bufferif (stack[stackDepth - 1] < buffer && stackDepth > 0) {// 棧頂元素出棧stack.pop_back();// 深度減1stackDepth--;} else {break;}}// 元素入棧stack.push_back(buffer);// 深度加1stackDepth++;}// 輸出棧內元素for (size_t i = 0; i < stack.size(); i++) {printf("%dn", stack[i]);}}
}

聯系郵箱:curren_wong@163.com

Github:https://github.com/CurrenWong

歡迎轉載/Star/Fork,有問題歡迎通過郵箱交流。

總結

以上是生活随笔為你收集整理的用法 stl_51Nod 2160 数字游戏 STL基本用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。