3.14阿里笔试第二题:灯能照多少人->人能看见多少个灯

刚被人问到了思路,然后看别人帖子方法基本不一样,写下我的思路:
换一个角度看题:只需要搜索每个人旁边的灯的数量就好了,当时人会屏蔽掉灯哦,代码只统计了行,还需要一次列遍历,逻辑一样的,就不贴了

int count;
for(int i=0; i<nums.size();i++) {
    int zero =0;
    int flag = false;
    for(int j=0;j<nums.size();j++) {
        if(nums[i][j]==0) zero++;
        else if(nums[i][j]==1) {
            if(flag) {
                count+= zero*2; //101这种情况,
            }else {
                count+=zero;
            }
            flag = true;
            zero=0;
        }
    }
    if(flag) {
        count+=zero;//100这种情况。
    }
}
#阿里笔试##阿里巴巴##笔经#
全部评论
是不是还得按列再算一遍
点赞 回复 分享
发布于 2022-03-20 18:40
我当时刚上去也在这么想(也是人看灯,但和你的不完全一样。),但后来验证了一下我的想法发现有漏洞,就直接暴力做了,只过了55%。
点赞 回复 分享
发布于 2022-03-14 21:26

相关推荐

04-11 15:34
已编辑
华中科技大学 网络安全
疯犬丨哈士奇:意思就是:我们还有其他更优秀的人在等回复,如果他们不要这个机会就会来找你
点赞 评论 收藏
分享
06-04 17:59
已编辑
长江大学 Java
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务