滿足條件的數(快手)

2021-10-23 21:44:59 字數 758 閱讀 3312

輸入乙個一位陣列,找出這個陣列中,所有滿足以下條件的元素:

1. 這個數左邊的所有元素都小於他;

2. 這個數右邊的數都大於他。

樣例:輸入: 輸出:[9

,15,10

,11,20

,39][

9,20,

39]

採用單調棧,入棧的條件:

如果當前的棧頂元素, st.top()>a[i],那麼當前棧頂元素肯定不滿足,所以需要一直pop,直到st.pop()a[i],所以a[i]也是不滿足條件的,所以a[i]也沒有權利入棧。

如果a[i]想要入棧,那麼他要滿足st.top()

#include

#include

#include

#include

#include

using

namespace std;

void

solution

(vector<

int>

& a)

else}}

max_val =

max(max_val, a[i]);

}while

(!st.

empty()

) cout<}int

main()

;solution

(test)

;system

("pause");

}

14 求滿足條件的3位數

總時間限制 1000ms 記憶體限制 65536kb 描述編寫程式,按從小到大的順序尋找同時符合條件1和2的所有3位數,條件為 1.該數為完全平方數 2.該數至少有2位數字相同 例如,100同時滿足上面兩個條件。輸入輸入乙個數n,n的大小不超過實際滿足條件的3位數的個數。輸出輸出為第n個滿足條件的3...

1077 統計滿足條件的4位數

時間限制 1000 ms 記憶體限制 65536 kb 題目描述 給定若干個四位數,求出其中滿足以下條件的數的個數 個位數上的數字減去千位數上的數字,再減去百位數上的數字,再減去十位數上的數字的結果大於零。輸入 輸入為兩行,第一行為四位數的個數n,第二行為n個的四位數。n 100 輸出 輸出為一行,...

找到滿足條件的陣列

給定函式d n n n的各位之和,n為正整數,如d 78 78 7 8 93。這樣這個函式可以看成乙個生成器,如93可以看成由78生成。定義數a 數a找不到乙個數b可以由d b a,即a不能由其他數生成。現在要寫程式,找出1至10000裡的所有符合數a定義的數。先申請乙個長度為10000的bool陣...