最高的摩天大楼(城市天际线可以表示为二维列表,其中 1 表示建筑物。在下面的示例中,最高建筑物的高度为4(最右边的第二列)。创建一个函数,输入城市天际线二维列表(0 和 1 的二维列表),并返回最高)

代码
#include<stdio.h>
int main(){
    int i=0,j=0,res=0,n=0,k=0,p,d,l=0;
    char c,x[5]={},a[20][20]={};
    do{
        scanf("%s",x);
        if(x[k]=='0'||x[k]=='1'){
            a[i][j]=x[k];
            j++;
        }
        if(x[k+1]=='0'||x[k+1]=='1'){
            a[i][j]=x[k+1];
            j++;
        }
        if(x[k+2]=='0'||x[k+2]=='1'){
            a[i][j]=x[k+2];
            j++;
        }
        if(x[k+1]==']') {
            i++;
            d=j;
            j=0;
        }
        if(x[k+4]=='0'||x[k+4]=='1'){
            a[i][j]=x[k+4];
            j++;
        }
        if(x[k+2]==']') {
            p=i;
            break;
        }
    }while(c=getchar()==' ');
    for(i=0;i<p;i++){
        for(j=0;j<d;j++){
            if(a[i][j]=='1'){
                printf("%d",p-i);
                l=1;
                break;
            }
        }
        if(l==1) break;
    }
    return 0;
}
友情提示

1、实际输入格式是(eg.[[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 1, 0],[0, 0, 1, 0, 1, 0],[0, 1, 1, 1, 1, 0],[1, 1, 1, 1, 1, 1]])。x数组用来暂时储存每次输入空格之前的字符串。前几个if语句是在按照实际输入格式选出1和0,赋给a数组。

2、p、d用来记录二维数组的行数和列数。

3、l作为标志,已有某行出现1的时候进行标记。

题目描述

城市天际线可以表示为二维列表,其中 1 表示建筑物。在下面的示例中,最高建筑物的高度为4(最右边的第二列)。

  1. [[0, 0, 0, 0, 0, 0],
  2. [0, 0, 0, 0, 1, 0],
  3. [0, 0, 1, 0, 1, 0],
  4. [0, 1, 1, 1, 1, 0],
  5. [1, 1, 1, 1, 1, 1]]

创建一个函数,输入城市天际线二维列表(0 和 1 的二维列表),并返回最高摩天大楼的高度。

输入输出格式

输入格式 输入一个数组,表示城市天际线;

输出格式 输出一个整数,表示最高摩天大楼的高度。

输入输出样例1

输入

  1. [
  2. [0, 0, 0, 0],
  3. [0, 1, 0, 0],
  4. [0, 1, 1, 0],
  5. [1, 1, 1, 1]
  6. ]

输出

3

输入输出样例2

输入

  1. [
  2. [0, 1, 0, 0],
  3. [0, 1, 0, 0],
  4. [0, 1, 1, 0],
  5. [1, 1, 1, 1]
  6. ]

输出

4

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值