建信金科1104秋招笔试真题解析
- 2026-10-30 19:55:37
关注我们,每周更新两到三次大厂最新笔试题解析
前言
两题难度还行,不是很难,需要注意一下边界值,第一题是寻常链表,第二题可以用动态规划做。
t1
小红拿到了一个链表,她需要把所有偶数节点合并到该节点前面和它相邻的奇数节点上(新节点权值为两个节点权值之和),直到剩余的节点无法合并为止。你能帮帮她吗?
示例1
输入
{2,3,4,1,2,2,3}
输出
{2,7,5,3}
说明
对于链表2->3->4->1->2->2->3,先将4合并到3上面,形成2->7->1->2->2->3,然后将2合并到1上面,形成2->7->3->2->3,最后将2合并到3上面,形成2->7->5->3。此时无法合并,合并结束。
思路与代码
在循环中,首先跳过当前节点和后续的所有偶数值节点,直到找到一个奇数值节点或到达链表末尾。
ListNode mergNode(ListNode head) {
ListNode dummy = new ListNode();
dummy.next = head;
ListNode cur = head;
while(cur != null) {
while(cur != null && cur.val % 2 == 0) {
cur = cur.next;
}
if(cur == null) break;
ListNode next = cur.next;
while(next != null && next.val % 2 == 0) {
cur.val += next.val;
next = next.next;
}
cur.next = next;
cur = next;
}
return dummy.next;
}
t2
小红拿到了一个链表。她每次操作会随机选择一个节点,将该节点、该节点下一个节点和该节点上一个节点同时删除。请注意,如果选择的节点是头节点,则不存在上一个节点,若是尾节点,则不存在下一个节点。
小红希望你计算将链表删成空链表的操作次数的期望 1<=n<=10^5
如果你返回的答案和正确答案的相对误差不超过10^-3,则认为你的答案正确。
示例1
输入
3
输出
1.66666667
说明
如果第一次击打最左边或者最右边的弹珠,则还需要一次击打。
如果第一次击打中间的弹珠,则直接打出全部弹珠。答案是1/3* 1+2/3*2=5/3
思路与代码
直接使用动态规划的方式计算了一个级数的期望值,并在最后将结果以8位小数的形式打印出来。
static double get_expect(int n) {
if(n == 1 || n == 2) {
return (double)1;
}
double[] f = new double[n + 1];
f[1] = 1;
f[2] = 1;
for(int i = 3;i <= n;i++) {
f[i] += (double)(i - 2) / i * (1 + f[i - 3]);
f[i] += (double)2 / i * (1 + f[i - 2]);
}
double ans = f[n];
String str = String.format("%.8f", ans);
ans = Double.parseDouble(str);
return ans;
}
public static void main(String[] args) {
int n = 3;
System.out.println(get_expect(n));
}
}
最后插一下我们的进阶一对一辅导啦
我们是一个针对技术岗(前后端开发、测试、测开、大数据开发)校招一对一进阶提高的工作室。我们从2020年2月份开始,迄今整整三年的时间,带领300+学员斩获1500+大厂offer,参加活动的同学人均5个中大厂offer以上,以下是我们活动内容的介绍! 万诺coding
我们主要是针对有一定基础的同学提供一对一笔试和面试辅导,针对每个同学不同的情况定制内容,包括但不限于“数据结构与算法”/“计算机基础知识”/“项目梳理”/“面试技巧”/“面试复盘”等内容。
摸底测试:如果有兴趣深入了解我们的活动,需要先参加我们的“摸底测试”(类似面试),方便我们了解你的具体情况(主要是code能力和计算机素养),定制出相应的辅导计划。同时这也是一个双向筛选的过程,如果基础过差的同学,抱歉我们可能无法辅导(基础过差的同学一对一辅导成本过高,对双方都不适合);摸底测试通过的同学,我们会定制化一个针对性的提高计划。然后你再考虑是否参加我们的活动。
承诺保offer:通过摸底测试后,我们会针对每个同学的情况给定一个“保offer”计划。然后同学可以根据自己的实际情况考虑参不参加我们的活动。
有兴趣的同学可以扫码添加我们的微信(whynotlab)