首页 > 华为8.11机试第三题
头像
但求一岗
发布于 2021-08-14 11:26
+ 关注

华为8.11机试第三题

麻了,考试时便秘,考完试贼通畅,第一题大家都能过部分,第二题没写,第三题刚才想了想,写了一下
题意:坑里面放木块,高于地平面不放,输入:木块宽度n(高为1),坑宽度m,数组(m个数字,表示地面高低)
输出:能放几块
请大佬指正!
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
//从上往下一层一层递归
void maxnums(vector<int>data, int &ret, int n, int m)
{
	int maxdeep = 0;
	for (int i = 0; i < m; i++)
	{
		maxdeep = min(maxdeep, data[i]);
	}
	if (maxdeep >= 0)return;
	for (int i = 0; i < m; i++)
	{
		if (data[i] <= -1)
		{
			int num = 0;
			while (data[i] <= -1)
			{
				num++;
				i++;
			}
			ret += num / n;
		}
	}
	for (int i = 0; i < m; i++)
	{
		data[i]++;
	}
	maxnums(data, ret, n, m);
}
int main()
{
	int n = 2, m = 4;//2 4
	vector<int>data{ 0,-1,-2,0 };//0 -1 -2 0
	int ret = 0;
	maxnums(data, ret, n, m);
	cout << ret << endl;
	return 0;
}


全部评论

(6) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐