问题:https://www.hackerrank.com/challenges/the-birthday-bar/problem
莉莉(Lily)有一条巧克力棒,她想与罗恩(Ron)生日分享。每个正方形上都有一个整数。她决定共享所选栏的连续段,以使段的长度与Ron的出生 month 相匹配,并且平方和的整数之和等于Ron的出生天。您必须确定她可以分割巧克力的几种方式。
功能说明
它应该返回一个整数,该整数表示Lily划分巧克力棒的方式。
s:整数数组,每个巧克力方块上的数字 d:整数,罗恩的生日 m:整数,罗恩的出生月份
打印一个整数,表示莉莉分配巧克力棒与罗恩分享的方式总数。
示例:Lily希望将Ron m = 2平方加到d =3。以下两个部分满足条件:
这是我列举所有可能性的蛮力解决方案:
static int birthday(List<int> s, int d, int m) {
int n = 0;
for(int i = 0; i < s.Count - (m - 1); i++) { //Updated, previous s.Count
if(s.Skip(i).Take(m).Sum() == d)
n++;
}
return n;
}
问题:是否有解决该问题的非蛮力解决方案?