哔哩哔哩编程题

扭蛋机:

#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;
}
开发语言:Java 框架:SSM(Spring、Spring MVC、MyBatis) JDK版本:JDK 1.8 或以上 开发工具:Eclipse 或 IntelliJ IDEA Maven版本:Maven 3.3 或以上 数据库:MySQL 5.7 或以上 此压缩包包含了本毕业设计项目的完整内容,具体包括源代码、毕业论文以及演示PPT模板。 项目配置完成后即可运行,若需添加额外功能,可根据需求自行扩展。 运行条件 确保已安装 JDK 1.8 或更高版本,并正确配置 Java 环境变量。 使用 Eclipse 或 IntelliJ IDEA 打开项目,导入 Maven 依赖,确保依赖包下载完成。 配置数据库环境,确保 MySQL 服务正常运行,并导入项目中提供的数据库脚本。 在 IDE 中启动项目,确认所有服务正常运行。 主要功能简述: 用户管理:系统管理员负责管理所有用户信息,包括学生、任课老师、班主任、院系领导和学校领导的账号创建、权限分配等。 数据维护:管理员可以动态更新和维护系统所需的数据,如学生信息、课程安排、学年安排等,确保系统的正常运行。 系统配置:管理员可以对系统进行配置,如设置数据库连接参数、调整系统参数等,以满足不同的使用需求。 身份验证:系统采用用户名和密码进行身份验证,确保只有授权用户才能访问系统。不同用户类型(学生、任课老师、班主任、院系领导、学校领导、系统管理员)具有不同的操作权限。 权限控制:系统根据用户类型分配不同的操作权限,确保用户只能访问和操作其权限范围内的功能和数据。 数据安全:系统采取多种措施保障数据安全,如数据库加密、访问控制等,防止数据泄露和非法访问。 请假审批流程:系统支持请假申请的逐级审批,包括班主任审批和院系领导审批(针对超过三天的请假)。学生可以随时查看请假申请的审批进展情况。 请假记录管理:系统记录学生的所有请假记录,包括请假时间、原因、审批状态及审批意见等,供学生和审批人员查询。 学生在线请假:学生可以通过系统在线填写请假申请,包括请假的起止日期和请假原因,并提交给班主任审批。超过三天的请假需经班主任审批后,再由院系领导审批。 出勤信息记录:任课老师可以在线记录学生的上课出勤情况,包括迟到、早退、旷课和请假等状态。 出勤信息查询:学生、任课老师、班主任、院系领导和学校领导均可根据权限查看不同范围的学生上课出勤信息。学生可以查看自己所有学年的出勤信息,任课老师可以查看所教班级的出勤信息,班主任和院系领导可以查看本班或本院系的出勤信息,学校领导可以查看全校的出勤信息。 出勤统计与分析:系统提供出勤统计功能,可以按班级、学期等条件统计学生的出勤情况,帮助管理人员了解学生的出勤状况
开发语言:Java 框架:SSM(Spring、Spring MVC、MyBatis) JDK版本:JDK 1.8 或以上 开发工具:Eclipse 或 IntelliJ IDEA Maven版本:Maven 3.3 或以上 数据库:MySQL 5.7 或以上 此压缩包包含了本毕业设计项目的完整内容,具体包括源代码、毕业论文以及演示PPT模板。 项目配置完成后即可运行,若需添加额外功能,可根据需求自行扩展。 运行条件 确保已安装 JDK 1.8 或更高版本,并正确配置 Java 环境变量。 使用 Eclipse 或 IntelliJ IDEA 打开项目,导入 Maven 依赖,确保依赖包下载完成。 配置数据库环境,确保 MySQL 服务正常运行,并导入项目中提供的数据库脚本。 在 IDE 中启动项目,确认所有服务正常运行。 主要功能简述: 用户管理:系统管理员负责管理所有用户信息,包括学生、任课老师、班主任、院系领导和学校领导的账号创建、权限分配等。 数据维护:管理员可以动态更新和维护系统所需的数据,如学生信息、课程安排、学年安排等,确保系统的正常运行。 系统配置:管理员可以对系统进行配置,如设置数据库连接参数、调整系统参数等,以满足不同的使用需求。 身份验证:系统采用用户名和密码进行身份验证,确保只有授权用户才能访问系统。不同用户类型(学生、任课老师、班主任、院系领导、学校领导、系统管理员)具有不同的操作权限。 权限控制:系统根据用户类型分配不同的操作权限,确保用户只能访问和操作其权限范围内的功能和数据。 数据安全:系统采取多种措施保障数据安全,如数据库加密、访问控制等,防止数据泄露和非法访问。 请假审批流程:系统支持请假申请的逐级审批,包括班主任审批和院系领导审批(针对超过三天的请假)。学生可以随时查看请假申请的审批进展情况。 请假记录管理:系统记录学生的所有请假记录,包括请假时间、原因、审批状态及审批意见等,供学生和审批人员查询。 学生在线请假:学生可以通过系统在线填写请假申请,包括请假的起止日期和请假原因,并提交给班主任审批。超过三天的请假需经班主任审批后,再由院系领导审批。 出勤信息记录:任课老师可以在线记录学生的上课出勤情况,包括迟到、早退、旷课和请假等状态。 出勤信息查询:学生、任课老师、班主任、院系领导和学校领导均可根据权限查看不同范围的学生上课出勤信息。学生可以查看自己所有学年的出勤信息,任课老师可以查看所教班级的出勤信息,班主任和院系领导可以查看本班或本院系的出勤信息,学校领导可以查看全校的出勤信息。 出勤统计与分析:系统提供出勤统计功能,可以按班级、学期等条件统计学生的出勤情况,帮助管理人员了解学生的出勤状况
当前提供的引用内容并未涉及哩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、付费专栏及课程。

余额充值