9.23网易算法笔试
真难啊,总共a了一道,第二题推出来公式了,但是不知道哪里有问题。3、4大眼瞪小眼不会。
第一题:查询长度为3且相同的字串数量
贴下第一题代码:
用一个dp先遍历整个串,记录以第i位结尾的前i个字符中所有满足条件的个数,每次给定区间,只需要用dp[r-1]-dp[l]即可求得相应区间内满足条件的个数。
第二题:给定数组长度以及元素之和,求某个位置的最大值,限制元素都是正整数且相差不超过1。
过了0%,但是我的思路感觉没啥毛病啊,有大佬的话欢迎指正。
要找位置p的满足条件的最大值,那位置p的值一定是数组中最大的数(或者最大数之一),也就是说位置p的数一定应该从每个位置均分m(m//n)开始遍历到m中的某一个满足某种条件的数,满足什么条件呢?满足位置p(不包含p)前面的数之和(等差数列)+后面的数之和(等差数列)都有个取值范围,前面的数之和取值范围是【left_min,left_max】=【(i-p+1)*(p-1)+(p-1)*(p-2)/2, (p-1)*i】,后面的数取值范围是【right_min,right_max】=【(i-n+p)*(n-p)+(n-p)*(n-p-1)/2,(n-p)*i】,则前面的数+后面的数取值范围是[left_min+right_min,left_max+right_max],设位置p的数为i,则m-i应该在这个区间内,i从m//n遍历到m,如果有m-i在这个区间内则更新结果,最后找到的满足条件的数就是我们需要的结果。
#牛客在线求职答疑中心##网易##我的实习求职记录##互联网没坑了,还能去哪里?##秋招##笔试#
第一题:查询长度为3且相同的字串数量
贴下第一题代码:
用一个dp先遍历整个串,记录以第i位结尾的前i个字符中所有满足条件的个数,每次给定区间,只需要用dp[r-1]-dp[l]即可求得相应区间内满足条件的个数。
第二题:给定数组长度以及元素之和,求某个位置的最大值,限制元素都是正整数且相差不超过1。
过了0%,但是我的思路感觉没啥毛病啊,有大佬的话欢迎指正。
要找位置p的满足条件的最大值,那位置p的值一定是数组中最大的数(或者最大数之一),也就是说位置p的数一定应该从每个位置均分m(m//n)开始遍历到m中的某一个满足某种条件的数,满足什么条件呢?满足位置p(不包含p)前面的数之和(等差数列)+后面的数之和(等差数列)都有个取值范围,前面的数之和取值范围是【left_min,left_max】=【(i-p+1)*(p-1)+(p-1)*(p-2)/2, (p-1)*i】,后面的数取值范围是【right_min,right_max】=【(i-n+p)*(n-p)+(n-p)*(n-p-1)/2,(n-p)*i】,则前面的数+后面的数取值范围是[left_min+right_min,left_max+right_max],设位置p的数为i,则m-i应该在这个区间内,i从m//n遍历到m,如果有m-i在这个区间内则更新结果,最后找到的满足条件的数就是我们需要的结果。
#牛客在线求职答疑中心##网易##我的实习求职记录##互联网没坑了,还能去哪里?##秋招##笔试#
全部评论
我四个题都做了,也是只有第一个题ac,后面三个题都是要么0%,要么不到10%,我都怀疑是不是标准答案有问题
真好,我直接没参加😃
你好,看到你的笔试题,感觉确实挺难的。不过,你的思路感觉没什么问题,可能是在实现上有些小问题。你可以尝试检查一下你的代码,看看是否有什么错误。如果你需要,我可以帮你看看代码,看看是否有什么可以改进的地方。
另外,关于第二题,你的思路是正确的,但是实现上可能需要注意一些细节。例如,你需要确保每个位置的数都是正整数,并且相差不超过1。这可能需要一些特殊的处理。
最后,关于笔试,不要灰心,一次失败不代表什么。你可以从这次笔试中吸取经验,为下一次笔试做好准备。加油!
int main()
{
int n, m, p;
cin >> n >> m >> p;
if(m == n)
{
cout << 1;
return 0;
}
m -= (n + 1);
int ans = 2;
int l = max(1, p - 1);
int r = min(n, p + 1);
while(true)
{
int val = r - l + 1;
if(m < val)
break;
m -= val;
++ ans;
l = max(1, l - 1);
r = min(n, r + 1);
}
cout << ans;
}
我也是1/4...陪跑凉了,这题也太难了
最后一题要用到矩阵乘法+快速幂求斐波那契数列,但是到最后没时间写了。
我开是也是差不多的思路推的公式直接求解,可能边界条件等每判断好吧没过,后来直接sqrt(m-n)+1 就 ac了,也就是说他的测试用例的m可能都是这种的,有点逆天
想继续投的,看这里28号截止。
相关推荐