下乙個較大元素

2021-07-22 04:56:55 字數 729 閱讀 4957

題目描述

現在我們有乙個int陣列,請你找出陣列中每個元素的下乙個比它大的元素。

給定乙個int陣列a及陣列的大小n,請返回乙個int陣列,代表每個元素比他大的下乙個元素,若不存在則為-1。保證陣列中元素均為正整數。

測試樣例:

[11,13,10,5,12,21,3],7

返回:[13,21,12,12,21,-1,-1]

思路:從後往前維護乙個單調棧,注意細節(**把主函式加上了)

#include

#include

#include

#include

using

namespace

std;

vector

findnext(vector

a, int n)

else

if(s.top()>a[i])

else

s.pop();

}if(ok)}}

return v;

}int main()

ans=findnext(v,n);

printf("n==%d\n",n);

for(int i=0;iif(i&&i%10==0)

printf(" %d",ans[i]);

}printf("\n");

return

0;}

下乙個較大元素

現在我們有乙個int陣列,請你找出陣列中每個元素的下乙個比它大的元素。給定乙個int陣列a及陣列的大小n,請返回乙個int陣列,代表每個元素比他大的下乙個元素,若不存在則為 1。保證陣列中元素均為正整數。測試樣例 11,13,10,5,12,21,3 7返回 13,21,12,12,21,1,1 思...

CTCI 下乙個較大元素

下乙個較大元素 題目描述 現在我們有乙個int陣列,請你找出陣列中每個元素的下乙個比它大的元素。給定乙個int陣列a及陣列的大小n,請返回乙個int陣列,代表每個元素比他大的下乙個元素,若不存在則為 1。保證陣列中元素均為正整數。測試樣例 11,13,10,5,12,21,3 7返回 13,21,1...

下乙個更大元素 III

參考 感謝!給定乙個32位正整數 n,你需要找到最小的32位整數,其與 n 中存在的位數完全相同,並且其值大於n。如果不存在這樣的32位整數,則返回 1。示例 1 輸入 12 輸出 21 示例 2 輸入 21 輸出 1 class solution int nextgreaterelement in...