网易2018笔试编程题1——最少安装路灯数

网易笔试第一题,思考了一会儿把自己给绕进去了,想明白了不难
网易2018笔试编程题1——最少安装路灯数_第1张图片 网易2018笔试编程题1——最少安装路灯数_第2张图片 网易2018笔试编程题1——最少安装路灯数_第3张图片

分两种情况讨论:

        1、<=3的情况,有需要被照亮的地方则安装1个路灯即可

        2、>3的情况,从第二个格子开始遍历(i=1),去寻找需要被照亮的格子(这里看当前格子的前一个格子i=0是否需要被照亮),如果i=0需要被照亮,并且i=0的格子没有被照亮,在当期位置放置路灯,同时照亮i-1、i、i+1三个格子,如果不需要被照亮,则i++即可。代码分享,大家可以讨论

#include 
#include 
#include 
#include 
using namespace std;

void Calcul()
{
    const int MAXLENTH = 1000;
    int n;
    char str[MAXLENTH];
    int sum=0,light[MAXLENTH+1] = {0};
    cin>>n;
    cin>>str;

    if(n<=3)
    {
        for(int i=0;i>k;
    for(int i=0;i


你可能感兴趣的:(网易,路灯问题)