这俩check有什么不同呢
查看原帖
这俩check有什么不同呢
1031098
DUAN19935268512楼主2023/10/19 23:34

这是我写的check函数(一个点都过不了)

bool check(int mid)
{
  int count = k;
  for (int i = 1;i < n;)
  {
    if (a[i] - a[i - 1] > mid)
    {
      a[i - 1] += mid;
      count--;
    }
    else
    {
      i++;
    }
  }
  return count >= 0;
}

下面是题解的(加上我自己的改写,过了)

bool check(int mid)
{
	int count = k;
	int now = 0;
	for (int i = 1; i < n; i++)
	{
		if (count < 0)
			break;

		if (a[i] - now > mid)
		{
			now += mid;
			count--;
			i--;
		}
		else
		{
			now = a[i];
		}
	}

	return count >= 0;
}

这俩运行的时候哪些结果会有不同呢?

2023/10/19 23:34
加载中...