ZJYYCOJ 問題 A 132模式

2021-10-10 21:48:36 字數 1270 閱讀 6305

時間限制: 1 sec 記憶體限制: 32 mb

輸入乙個整數序列:a1, a2, …, an,乙個132模式的子串行ai, aj, ak被定義為:當 i < j < k 時,ai < ak < aj。

設計乙個演算法,當給定有n 個數字的序列時,驗證這個序列中是否含有132模式的子串行。

第一行輸入序列長度n,( 0 <= n <= 15000 )

第二行輸入n個數

如果含有 132模式子串行輸出true,否則輸出false

4

1 2 3 4

43 1 4 2

4-1 3 2 0

false

true

true

第一組資料: 序列中不存在132模式的子串行

第二組資料: 序列中有 1 個132模式的子串行: [1, 4, 2]

第三組資料: 序列中有 3 個132模式的的子串行: [-1, 3, 2], [-1, 3, 0] 和 [-1, 2, 0]

剛開始理解錯誤,以為132模式是三個連續的陣列後來發現並不是。

思路:按照2->3->1循序去找,大概思路如圖所示。被壓入棧的一定是是按遞減關係的,所以我們要找棧內最大的而又比當前值小的,最後再找後面的值小於t的,才能保證不遺漏。

#include

#include

#include

using

namespace std;

intmain()

if(n<3)

else

}else}if

(f)else}}

}

#include

#include

#include

using

namespace std;

intmain()

if(n<3)

else

while

(!sk.

empty()

&&a[i]

>sk.

top())

sk.push

(a[i]);

}if(f==0)

printf

("false\n");}}}

ZJYYCOJ 水流問題

題目讀完,可能還是會有點朦朦的,題目意思就是,隨意從乙個點出發,問你是否能走到太平洋 即x 1 y 1 和 大西洋 即x n y m 然後看看資料範圍,哦,可以搜!或者是有別的解法!當然dfs,bfs 都是可以的!搜法 俗稱逆向思維,既然要到太平洋,大西洋,那我們就從邊界出發,往裡搜,從太平洋過來的...

ZJYYCOJ問題 A 字母大小全排列

題目描述 給定乙個字串s,通過將字串s中的每個字母轉變大小寫,我們可以獲得乙個新的字串。輸出所有可能的字串的數量。輸入格式 測試樣例由多組測試資料組成,每組測試資料第一行輸入乙個字串s 1 s.length 12 輸出格式 輸出所有可能的字串的數量 樣例輸入 copy q1b2樣例輸出 copy 4...

Leetcode水題 132模式

首先想到的是回溯法,但最壞演算法複雜度為o n 3 而且題目只需要判斷是否存在,而回溯法會把所有可能都嘗試一遍,接著想到貪心,首先找到乙個區域中的最小值a 下標記為i 接著從i 1開始找到乙個區域內的最大值b 下標記為j 從j 1開始找,尋找位於a與b之間的數,找到了,返回true,否則返回從j 1...