秋招 8.24京东笔试 JDS-2025届秋招-后端开发工程师-第3批

ops/2024/11/15 6:14:18/

8.24 JDS-2025届秋招-后端开发工程师-第3批
前言
京东不同的语言(C++, Java, Go)卷子是不同的,一开始会让你选对应的语言。

选择题分为八股文和编程逻辑题,编程大题有三题(15, 20, 25)

大题,笔者AC了前两道,最后一题暴力20%

希望可以进面!

1、
输入只一个n(-10100 <= n <= 10100),输出0 ~ n有多少个数是100的倍数。

知识点:库函数的使用

#include<bits/stdc++.h>
using namespace std;
/*#define int long long*/
#define endl '\n'
#define P pair<int, int>
#define x first
#define y second
const int maxl = 1e6 + 7;string s;void slove() {cin >> s;if (s[0] == '-' || s.size() < 3) cout << 0;else {cout << s.substr(0, s.size() - 2) << endl; }
}signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int t = 1;/*cin >> t;*/while(t--) slove();return 0;
}

2
一个n * m的矩阵,有k次询问,每次询问包含 op, x, y。

op为字符c, 把(x, y)位置变成黑色
op为字符r, 输出(x, y)位置右边第一个白色方格位置的坐标。
op为字符l, 输出(x, y)位置左边第一个白色方格位置的坐标。
op为字符u, 输出(x, y)位置上边第一个白色方格位置的坐标。
op为字符d(反正是最后一种操作,具体啥字符我忘了), 输出(x, y)位置下边第一个白色方格位置的坐标。
知识点:模拟

#include<bits/stdc++.h>
using namespace std;
/*#define int long long*/
#define endl '\n'
#define P pair<int, int>
#define x first
#define y second
const int maxl = 1e2 + 7;int n, m, k;
int G[maxl][maxl];
void slove() {cin >> n >> m >> k;while (k--) {char op;int x, y;cin >> op >> x >> y;if (op == 'c') G[x][y] = 1;else if (op == 'l') {bool flag = 0;while (--y > 0) {if (!G[x][y]) {cout << x << " " << y << endl;flag = 1;break;}}if (!flag) cout << -1 << endl;} else if (op == 'r') {bool flag = 0;while (++y <= m) {if (!G[x][y]) {cout << x << " " << y << endl;flag = 1;break;}}if (!flag) cout << -1 << endl;} else if (op == 'u') {bool flag = 0;while (--x > 0) {if (!G[x][y]) {cout << x << " " << y << endl;flag = 1;break;}}if (!flag) cout << -1 << endl;} else {bool flag = 0;while (++x <= n) {if (!G[x][y]) {cout << x << " " << y << endl;flag = 1;break;}}if (!flag) cout << -1 << endl;}}   
}signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int t = 1;/*cin >> t;*/while(t--) slove();return 0;
}

3
有n根木棍排成一列,第i根木棍的长度为a;。

请你从中选出一个最长的子区间,使得区间内任意三根木棍都能构成三角形。只需要输出选出的区间端点即可。I输入描述

第一行一个整数n(3≤n≤106) , 表示木棍的数量。

第二行n个整数,第i个整数a;(1≤a;≤109)表示第i根木棍的长度。

输出描述

输出一行两个整数,表示最长的满足条件的区间的两个端点,如果有多个满足条件的区间,输出左端点最小的区间。保证答案存在。

示例

输入

3
1 2 3
输出

1 2
输入

9
2 3 3 3 1 1 3 3 3
输出

1 4
最初的暴力过20%,被我搞丢了,但是这个应该比我原来的更优秀,但是最后一秒没交上去,大家看看对不对。

#include <algorithm>
#include<bits/stdc++.h>
#include <climits>
using namespace std;
#define int long long
#define endl '\n'
#define P pair<int, int>
#define x first
#define y second
const int maxl = 1e6 + 7;
struct node {int l;int r;int len;
};int n;
int a[maxl];
node ans;
map<int, int> mp;void slove() {cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];int minn, maxn;for (int l = 1, r = 1; r <= n; r++) {mp[a[r]]++;minn = mp.begin()->first;maxn = mp.end()->first;while (2 * minn <= maxn) {if (!--mp[a[l]]) mp.erase(a[l]);l++;minn = mp.begin()->first;maxn = mp.end()->first;}if (2 * minn > maxn && ans.len < r - l + 1) {ans.l = l;ans.r = r;ans.len = r - l + 1;}/*cout << "l:" << l << " r:" << r << endl;*//*for (auto [k, v] : mp) cout << "k-->" << k << " v-->" << v << endl;*//*cout << endl;*/}cout << ans.l << " " << ans.r << endl;
}signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int t = 1;/*cin >> t;*/while(t--) slove();return 0;
}

下面是我根据网友思路写的双指针加滑动窗口,友友们可以一起讨论对不对。

#include <algorithm>
#include<bits/stdc++.h>
#include <deque>
using namespace std;
/*#define int long long*/
#define endl '\n'
#define P pair<int, int>
#define x first
#define y second
const int maxl = 1e6 + 7;
struct node {int l;int r;int len;
};int n;
int a[maxl];
node ans;
deque<int> min_dq, max_dq;void slove() {cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];for (int l = 1, r = 1; r <= n; r++) {while (!max_dq.empty() && a[max_dq.back()] < a[r]) max_dq.pop_back();while (!min_dq.empty() && a[min_dq.back()] > a[r]) min_dq.pop_back();max_dq.push_back(r);min_dq.push_back(r);while (!max_dq.empty() && !min_dq.empty() && 2 * a[min_dq.front()] <= a[max_dq.front()]) {l++;if (max_dq.front() < l) max_dq.pop_front();if (min_dq.front() < l) min_dq.pop_front();}if (ans.len < r - l + 1) {ans.l = l;ans.r = r;ans.len = r - l + 1;}}if (ans.len <= 2) cout << 1 << " " << 2 << endl;else cout << ans.l << " " << ans.r << endl;
}signed main(){ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int t = 1;/*cin >> t;*/while(t--) slove();return 0;
}

http://www.ppmy.cn/ops/102695.html

相关文章

sqlilabs less21-25关手工注入

第21关 一.登录页面 二 .Burp Suite 抓包&#xff0c;进入重放器 三.查询数据库 先进行编码 )and updatexml(1,concat(1,database()),1)# 四.查表&#xff0c;先进行编码 )and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where…

PHP 全攻略:从环境搭建到实战项目的深度探索

一、引言 PHP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛应用于 Web 开发的服务器端脚本语言。它具有简单易学、功能强大、开源免费等特点&#xff0c;被众多开发者和企业所青睐。本文将详细介绍 PHP 的开发环境搭建、基本语法格式、变量与变量作用域、常量与数…

使用python对接空号检测API接口

为什么选择空号检测API接口&#xff1f; 自动化检测电话号码的有效性&#xff0c;减少人工筛查的时间和成本。确保与客户的每一次联系都是有效的&#xff0c;避免因为无效号码而错失重要客户。通过API接口实时更新和验证电话号码数据&#xff0c;保证数据的准确性和及时性。 …

对标GPT4o,智谱推出新一代基座大模型 GLM-4-Plus

最新基座大模型 GLM-4-Plus发布并上线开放平台 在 KDD 国际数据挖掘与知识发现大会上&#xff0c;智谱 GLM 团队介绍了新一代基座大模型GLM-4-Plus。GLM-4-Plus 是智谱全自研 GLM 大模型的最新版本&#xff0c;它标志着智谱继续瞄准通用人工智能&#xff0c;持续推进大模型技术…

ESXI8虚拟机vmdk文件备份到本地硬盘

1. Esxi开启ssh服务 点击“管理”→“服务” →“TSM-SSH”&#xff0c;右击启动 2. 把datastore1中所有虚拟机文件(包括vmdk文件)复制到d:\E1 使用xshell等工具SSH登录ESXI8后台&#xff0c;确认datastore1的具体文件夹路径 在win10&#xff0c;使用cmd&#xff0c;在d:\E1…

设计模式 -- 适配器模式(Adapter Pattern)

1 基本介绍 适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;主的目的是兼容性&#xff0c;让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper) 适配器模式属于结构型模式 主要分为三类&#xff1a;类适配…

npm报错network request to https://registry.npmjs.org/fuse.js failed的解决方法

目录 一、问题描述二、解决方法一、问题描述 执行 npm install 报错: npm ERR! code ETIMEDOUT npm ERR! errno ETIMEDOUT npm ERR! network request to https://registry.npmjs.org/fuse.js failed, reason: connect ETIMEDOUT 104.16.31.34:443 npm ERR! network This is …

怎么做服饰定制小程序 服饰小程序系统开发制作方法

最近很多老板想要做一个自己公司的服饰定制小程序系统&#xff0c;但是不知道该怎么做&#xff0c;本次瀚林就为大家详细介绍一下服饰定制小程序系统的开发制作方法为大家做参考。 目前市面上的服饰定制有很多类型例如常见的&#xff1a; 服饰定制服务、服饰店、校服、品牌服饰…