讨论/题目交流/🏆 第 181 场力扣周赛/
🏆 第 181 场力扣周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛

image.png

3 分 - 按既定顺序创建目标数组
4 分 - 四因数
5 分 - 检查网格中是否存在有效路径
6 分 - 最长快乐前缀

求解啊,T2一直超时,真的不知道为什么,哎

int sumFourDivisors(int* nums, int numsSize)
{
	int cnt = 2;
	double sum = 0;
	double sumfour = 0;
	int flag = 0;
	double incflag = 0;

	for (int i = 0; i < numsSize; i++)
	{
		sum = 1 + nums[i];
		for (int j = 2; j < nums[i]; j++) //寻找因子
		{
			if (nums[i] % j == 0)
			{
				sum = sum+j;
				cnt++;
				if (cnt > 4)
				{
					break;
				}
			}
		}

		if (cnt != 4)  //如果不是四因数
		{
			flag = 1;
		}

		if (flag == 0)  //flag = 0说明当前下表nums是四因子数
		{
			incflag++;
			sumfour += sum;
		}

		flag = 0;
		sum = 0;
		cnt = 2;
	}
	if (incflag == 0) //incflag表示四因子数的个数
		return 0;
	else
	return sumfour;
}
展开全部 41 讨论