You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#include<iostream>usingnamespacestd;int a[100];
int b[100];
int now;
intmain()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = 0; i < n; i++)
{
now = ①;
if (i == 0 || i == n - 1)
b[i] = 1;
else
b[i] = ②;
for (int j = ③; j >= 0; j--)
{
if (a[j] > now)
{
now = a[j];
b[i]++;
}
}
now = ④;
for (int j = ⑤; j < n; j++)
{
if (a[j] > now)
{
now = a[j];
b[i]++;
}
}
}
for (int i = 0; i < n; i++)
{
cout << b[i] << "";
}
return0;
}
0001
题目
(统计个数)给出n个数,统计每个数能看到的数字个数。
例如:
2 5 1 3 4
第一个数字
2
可以看到:5
,因为5
将1,3,4
挡住了,一共1
个第二个数字
5
可以看到:2,1,3,4
一共4
个第三个数字
1
可以看到:5,3,4
,因为5
将2
挡住了,一共3
个第四个数字
3
可以看到:1,5,4
,因为5
将2
挡住了,一共3
个第五个数字
4
可以看到:3,5
,因为3
将1
挡住了,5
将2
挡住了,一共2
个问题: 题目中的 ①②③④⑤ 分别应该是什么?
解题
分析问题
看到
和挡住
a
能看到序列中的其他哪些数字,一共可以看到几个?代码补全思路
过一遍代码
看不懂的代码
j--
表示从大往小遍历,结束条件为0
, 即数字序列从右往左遍历j++
表示从小往大遍历, 结束条件为n
, 即数字序列从左往右遍历本题为补全代码的题,如果是编写代码的题应该怎么做?
整理问题解决的步骤
可以尝试用文字描述下每个步骤
The text was updated successfully, but these errors were encountered: