京东笔试 - 0824
京东笔试 - 0824
JDS-2025届秋招-后端开发工程师-第3批
一百倍
题面
给你一个整数,请你判断 ~ 之间有多少个数是 的正整数倍。
输入描述:
输入的第一行给出一个整数 .
输出描述:
输出 ~ 之间有多少个数是 的整数倍。
数字范围非常大,转化为字符串解决,除去低两位即可。
#include <iostream>
using namespace std;
int main(){
string s;
cin >> s;
int len = s.length();
if (s[0] == '-' || len < 3){
cout << 0 << endl;
} else {
string str = s.substr(0, len - 2);
cout << str << endl;
}
retrun 0;
}
网络板
题面
给定一个小为 的网格板, 网格板是由 个 的单元格组成, 最初所有的单元格是白色的。
现在给出k个操作:
将位置为 的单元格涂成黑色
从位置为 的单元格向左寻找最先出现的白色单元格 (不包含) , 并输出其坐标;
从位置为 的单元格向右寻找最先出现的白色单元格 (不包含) , 并输出其坐标;
从位置为 的单元格向上寻找最先出现的白色单元格 (不包含) , 并输出其坐标;
从位置为 的单元格向下寻找最先出现的白色单元格 (不包含) , 并输出其坐标;
注: 网格板的左上角的单元格坐标为
输入描述:
第一行给出正整数 代表网格板的大小以及操作的次数;
随后 行, 每行一个操作命令 。
中仅包含
输出描述:
对于 的命令, 每行输出对应的操作后的坐标。
四个方向模拟即可。
用一个二维布尔数组来表示网格,其中 true
表示黑色单元格,false
表示白色单元格。对于每个查找操作,在指定方向上遍历网格,直到找到一个白色单元格或到达边界。
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m, k;
cin >> n >> m >> k;
// 初始化网格,所有单元格都是白色(false)
vector<vector<bool>> grid(n, vector<bool>(m, false));
while (k--) {
char op;
int x, y;
cin >> op >> x >> y;
x--; y--; // 将坐标转换为0-based
if (op == 'c') {
// 将单元格涂黑
grid[x][y] = true;
} else {
int res_x = -1, res_y = -1;
if (op == 'l') {
// 向左寻找
for (int j = y - 1; j >= 0; j--) {
if (!grid[x][j]) {
res_x = x + 1;
res_y = j + 1;
break;
}
}
} else if (op == 'r') {
// 向右寻找
for (int j = y + 1; j < m; j++) {
if (!grid[x][j]) {
res_x = x + 1;
res_y = j + 1;
break;
}
}
} else if (op == 'u') {
// 向上寻找
for (int i = x - 1; i >= 0; i--) {
if (!grid[i][y]) {
res_x = i + 1;
res_y = y + 1;
break;
}
}
} else if (op == 'd') {
// 向下寻找
for (int i = x + 1; i < n; i++) {
if (!grid[i][y]) {
res_x = i + 1;
res_y = y + 1;
break;
}
}
}
// 输出结果
if (res_x == -1 && res_y == -1) {
cout << -1 << endl;
} else {
cout << res_x << " " << res_y << endl;
}
}
}
return 0;
}
三角形
题面
有 根木桩排成一列,第 根木桩的长度为 。
请你从中选出一个最长的子区间,使得区间内任意三根木桩都能构成三角形。只需要输出选出的区间端点即可。
输入描述:
第一行一个整数 ,表示木桩数量。
第二行 个整数,第 个整数 表示第 根木桩的长度。
输出描述:
输出一行两个整数,表示最长的满足条件的区间的两个端点。如果有多个满足条件的区间,输出左端点最小的区间。保证答案存在。
三角形的成立条件:任意两边之和大于第三边。
对于一个区间内的木桩,如果我们能保证最短的两根木桩之和大于最长的木桩,那么这个区间内任意三根木桩都能构成三角形。我们可以使用滑动窗口和单调队列的思想来解决这个问题。