題目描述
現在我們有乙個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...