哔哩哔哩编程题

扭蛋机:

#include<iostream>
using namespace std;
int main() {
	int num;
	while (cin >> num) {
		string ret = "";
		while (num != 0) {
			if (num % 2 == 0) {
				num = (num - 2) / 2;
				ret = '3' + ret;
			}
			else {
				num = (num - 1) / 2;
				ret = '2' + ret;
			}
		}
		cout << ret << endl;
	}
	return 0;
}

脸滚键盘:

#include<iostream>
#include<string>
#include<unordered_map>
using namespace std;
int main() {
    int n;
    string S;
    while (getline(cin, S)) {
        int i = 0;
        while (S[i] != ' ') {
            i++;
        }
        string str = S.substr(0, i);
        // 不按照空格输入的字符串,能把字符串按照空格分开的函数
        n = stoi(str);
        string s = S.substr(i+1, S.size());
        unordered_map<char, int> map;
        /*cout << n << endl;
        cout << s << endl;*/
        for (char c : s) {
            map[c]++;
        }
        //for (auto it = map.begin(); it != map.end(); it++) cout << it->first << " : " << it->second << endl;
        int count = 0;
        for (char c : s) {
            if (map[c] == 1) {
                if (count + 1 == n) {
                    cout << "[" << c << "]" << endl;
                    count++;
                    break;
                }
                else {
                    count++;
                }
            }
        }
        if (count < n) cout << "Myon~" << endl; 
    }
    return 0;
}

并查集:

// 查找根节点并进行路径压缩
int find(int x) {
	int t = x;
	// 查找,最后的x就变成了根节点
	while (x != fa[x]) {
		x = fa[x];
	}
	// 路径压缩
	while (t != x) {
		int Tfa = fa[t];
		fa[t] = x;
		t = Tfa;
	}
	return x;
}

// 合并
void merge(int x, int y) {
	int xRoot = find(x);
	int yRoot = find(y);
	if (xRoot != yRoot) {
		fa[xRoot] = yRoot;
	}
}

小A最多会新认识的多少人

  1. 并查集的方法
//并查集基本应用,最后别忘了减掉本身
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<vector>
using namespace std;
vector<int>f;
int find(int x) {
    return x == f[x] ? x : f[x] = find(f[x]);
}
int main(void) {
    int n, ix, m;
    while (cin >> n >> ix >> m) {
        f = vector<int>(n); // 全局向量运行时定义大小
        for (int i = 0; i < n; i++)f[i] = i;
        int ans = 0, b = 0;
        while (m--) {
            int x1, x2;
            // cin >> x1 >> x2;
            // scanf("%d,%d", &x1, &x2);
            scanf_s("%d,%d", &x1, &x2); // vs不支持scanf
            if (x1 == ix || x2 == ix)b++;
            int fx = find(x1), fy = find(x2);
            if (fx != fy)f[fx] = fy;
        }
        for (int i = 0; i < n; i++) {
            if (find(ix) == find(i))ans++;
        }
        cout << ans - b - 1 << endl;
    }
    return 0;
}
  1. 图的深度遍历方法
#include<iostream>
#include<vector>

using namespace std;
const int maxn = 1e5 + 8;
vector<int> G[maxn];
int res = 0;

//深度遍历 找到一个集合的人
void dfs(int ai, vector<bool>& v) {
	for (int i = 0; i < G[ai].size(); ++i) {
		if (!v[G[ai][i]]) {
			v[G[ai][i]] = true;
			res++;
			dfs(G[ai][i], v);
		}
	}
	return;
}
int main() {
	int n, ai, m;
	cin >> n >> ai >> m;
	//构建邻接表
	while (m--) {
		int p1, p2;
		char chs;
		cin >> p1 >> chs >> p2;
		G[p1].push_back(p2);
		G[p2].push_back(p1);
	}
	vector<bool> visited(n, false);

	//除去本来就认识的人和自己
	int already = G[ai].size() + 1;
	dfs(ai, visited);

	cout << res - already << endl;
	return 0;
}
内容概要:本文介绍了一个基于多传感器融合的定位系统设计方案,采用GPS、里程计和电子罗盘作为定位传感器,利用扩展卡尔曼滤波(EKF)算法对多源传感器数据进行融合处理,最终输出目标的滤波后位置信息,并提供了完整的Matlab代码实现。该方法有效提升了定位精度与稳定性,尤其适用于存在单一传感器误差或信号丢失的复杂环境,如自动驾驶、移动采用GPS、里程计和电子罗盘作为定位传感器,EKF作为多传感器的融合算法,最终输出目标的滤波位置(Matlab代码实现)机器人导航等领域。文中详细阐述了各传感器的数据建模方式、状态转移与观测方程构建,以及EKF算法的具体实现步骤,具有较强的工程实践价值。; 适合人群:具备一定Matlab编程基础,熟悉传感器原理和滤波算法的高校研究生、科研人员及从事自动驾驶、机器人导航等相关领域的工程技术人员。; 使用场景及目标:①学习和掌握多传感器融合的基本理论与实现方法;②应用于移动机器人、无人车、无人机等系统的高精度定位与导航开发;③作为EKF算法在实际工程中应用的教学案例或项目参考; 阅读建议:建议读者结合Matlab代码逐行理解算法实现过程,重点关注状态预测与观测更新模块的设计逻辑,可尝试引入真实传感器数据或仿真噪声环境以验证算法鲁棒性,并进一步拓展至UKF、PF等更高级滤波算法的研究与对比。
内容概要:文章围绕智能汽车新一代传感器的发展趋势,重点阐述了BEV(鸟瞰图视角)端到端感知融合架构如何成为智能驾驶感知系统的新范式。传统后融合与前融合方案因信息丢失或算力需求过高难以满足高阶智驾需求,而基于Transformer的BEV融合方案通过统一坐标系下的多源传感器特征融合,在保证感知精度的同时兼顾算力可行性,显著提升复杂场景下的鲁棒性与系统可靠性。此外,文章指出BEV模型落地面临大算力依赖与高数据成本的挑战,提出“数据采集-模型训练-算法迭代-数据反哺”的高效数据闭环体系,通过自动化标注与长尾数据反馈实现算法持续进化,降低对人工标注的依赖,提升数据利用效率。典型企业案例进一步验证了该路径的技术可行性与经济价值。; 适合人群:从事汽车电子、智能驾驶感知算法研发的工程师,以及关注自动驾驶技术趋势的产品经理和技术管理者;具备一定自动驾驶基础知识,希望深入了解BEV架构与数据闭环机制的专业人士。; 使用场景及目标:①理解BEV+Transformer为何成为当前感知融合的主流技术路线;②掌握数据闭环在BEV模型迭代中的关键作用及其工程实现逻辑;③为智能驾驶系统架构设计、传感器选型与算法优化提供决策参考; 阅读建议:本文侧重技术趋势分析与系统级思考,建议结合实际项目背景阅读,重点关注BEV融合逻辑与数据闭环构建方法,并可延伸研究相关企业在舱泊一体等场景的应用实践。
当前提供的引用内容并未涉及哩2025年的Java面试题相关内容。然而,可以基于已有信息推测可能的题目方向以及常见的考察知识点。以下是综合现有参考资料得出的回答: ### 常见Java面试题方向 #### 1. **基础概念** - Java中的`final`关键字有哪些作用?[^3] - `String`对象为什么是不可变的?其底层实现是什么样的?[^5] #### 2. **并发编程** - 解释一下`synchronized`和`ReentrantLock`的区别及其适用场景。[^1] - 如何解决线程安全问题?请举例说明。 #### 3. **JVM原理** - JVM内存模型是如何划分的?每部分的作用分别是什么? - 发生OOM(OutOfMemoryError)的原因有哪些?如何排查? #### 4. **数据库与缓存** - MySQL索引的工作机制是什么?B+树结构的特点有哪些? - Redis支持的数据类型有哪些?它们各自的应用场景是什么? #### 5. **框架相关** - Spring AOP的核心原理是什么?动态代理和静态代理有什么区别?[^2] - Dubbo的服务治理流程包括哪些环节?ZooKeeper在其中起到什么作用? #### 6. **算法与数据结构** - 实现二叉树的层序遍历算法。 ```python from collections import deque def level_order_traversal(root): result = [] if not root: return result queue = deque([root]) while queue: current_level_size = len(queue) current_level_nodes = [] for _ in range(current_level_size): node = queue.popleft() current_level_nodes.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) result.append(current_level_nodes) return result ``` #### 7. **刷题策略** - 刷题阶段应重点关注实际工作中常用的技术点,而非过度关注复杂的智力题或冷门算法。[^4] --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值