网易机试

Posted ruo-li-suo-yi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网易机试相关的知识,希望对你有一定的参考价值。

一、

输入描述:

6:代表课堂时长(分钟);3:代表提醒后清醒的时长;

1 3 5 2 5 4 是 6 个时长对应的兴趣值

1 1 0 1 0 0 是对应时间清醒与否。

找出叫醒的时间点,使得课堂兴趣值最大。

例如在三分钟时叫醒,这样在3、4、5分钟内都会清醒;这样该课堂兴趣值为(1+3+5+2+5=16)。

技术分享图片

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std; 

int Inte[100000];
int SlpOrCle[100000];
int SlpOrCle1[100000];

int SumInte1(int *a,int *b,int n) //求兴趣点; 
{
	int suminte1=0;
	for(int i=0;i<n;i++)
	{
		if(b[i]==1)
		    suminte1+=a[i];
	}
	return suminte1;
}

int main()
{
	int n,k;
	while(cin>>n>>k)
	{
		int Maxinte=0;
		for(int i=0;i<n;i++)
		    cin>>Inte[i];
		for(int i=0;i<n;i++)
		    cin>>SlpOrCle[i];
		for(int i=0;i<n;i++)
		    SlpOrCle1[i]=SlpOrCle[i];
		vector<int> Zeros;
		for(int i=0;i<n;i++)
		{
			if(SlpOrCle[i]==0)
			   Zeros.push_back(i); 
		}
		
        for(int i=0;i<Zeros.size();i++) 
        {
        	for(int j=Zeros[i];j<(Zeros[i]+k) and j<n;j++)
        	{
        		SlpOrCle1[j]=1;
        	}
        	
        	int a;
        	a=SumInte1(Inte,SlpOrCle1,n);
        	if(a>Maxinte)
        	{
        		Maxinte=a;
        	}
        	for(int i=0;i<n;i++)
		        SlpOrCle1[i]=SlpOrCle[i];
        }
        cout<<Maxinte;
	}
	return 0;
}  //6 3 1 3 5 2 5 4 1 1 0 1 0 0

  

 

以上是关于网易机试的主要内容,如果未能解决你的问题,请参考以下文章

华为OD机试真题Java实现单词反转真题+解题思路+代码(2022&2023)

华为OD机试真题Python实现翻转单词顺序真题+解题思路+代码(2022&2023)

华为OD机试 - 单词反转(Python)| 真题含思路

华为OD机试真题Java实现匿名信真题+解题思路+代码(2022&2023)

华为OD机试 - 单词反转(JavaScript) | 机试题算法思路 2023

24浙大在职计算机需要考机试么