프로 그래 밍 문제 쇼핑 - 텐 센트 학교 백 스테이지 필기시험 모집
1476 단어 문 제 를 풀다
공간 제한: C / C + + 256 M, 기타 언어 512 M
Q. 주말 에 그의 동료 들 과 대도시 에 쇼핑 하 러 왔 는데 한 산책 로 에 고 층 건물 이 많 고 모두 n 개의 고 층 건물 이 한 줄 로 서 있 었 다.
작은 Q 는 첫 번 째 동 에서 마지막 동 까지 걸 어 갔 는데 작은 Q 는 이렇게 많은 건물 을 본 적 이 없 었 다. 그래서 그 는 각 건물의 위치 에서 몇 채 의 건물 을 볼 수 있 는 지 알 고 싶 었 다.(앞의 건물 이 뒤의 건물 보다 높 을 때 뒤의 건물 은 가 려 진다)
입력 설명:
첫 번 째 줄 에 숫자 n 을 입력 하면 건물의 동 수 를 대표 합 니 다. 다음 줄 에는 n 개의 숫자 wi (1 < = i < = n) 가 포함 되 어 있 고 모든 건물의 높이 를 대표 합 니 다.
1<=n<=100000;
1<=wi<=100000;
출력 설명:
, n vi, Q i 。
입력 예 1:
6
5 3 8 3 2 5
출력 예 1:
3 3 5 4 4 4
나의 해답:
#include
#include
using namespace std;
#include
#include
int main()
{
int n;
cin >> n;
int x[100001];
for (int i = 0; i < n; i++)
{
cin >> x[i];
}
vector a, b;
stack s1, s2;
for (int i = 0, j = n - 1; i < n, j>=0; i++, j--)
{
a.push_back(s1.size());
b.push_back(s2.size());
while(!s1.empty() && s1.top() <= x[i])
{
s1.pop();
}
while(!s2.empty() && s2.top() <= x[j])
{
s2.pop();
}
s1.push(x[i]);
s2.push(x[j]);
}
for (int i = 0; i < n; i++)
{
cout << a[i] + b[n - 1 - i]+1 << " ";
}
system("pause");
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LeetCode Java First 400 문제 풀이 - 030Substring with Concatenation of All Words Hard You are given a string, s, and a list of words, words, that are all of...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.