当前位置: 首页 > news >正文

所做过的笔试真题

目录

  • 京东20250816
    • 1.序列逆序对优化
    • 2.滑动窗口最大最小值
  • 京东20250809
    • 1.子序列的字典序

京东20250816

1.序列逆序对优化

在这里插入图片描述

using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int T;if (!(cin >> T)) return 0;while (T--) {int n;cin >> n;vector<int> arr(n);for (int i = 0; i < n; ++i) cin >> arr[i];vector<int> totalCount(n + 2, 0);for (int v : arr) ++totalCount[v];vector<int> seenPrefix(n + 3, 0);long long currentGain = 0;long long bestGain = 0;for (int i = 0; i < n; ++i) {bestGain = max(bestGain, currentGain);int v = arr[i];//这一步死活看不懂currentGain += (long long)totalCount[v - 1] - seenPrefix[v - 1] - seenPrefix[v + 1];++seenPrefix[v];}bestGain = max(bestGain, currentGain);cout << bestGain << "\n";}return 0;
}

2.滑动窗口最大最小值

在这里插入图片描述
在线做题链接

#include <iostream>
#include<vector>
#include <queue>
using namespace std;
int maxwindow(vector<int>& nums, int k){auto cmp=[](const pair<int,int>&a,const pair<int,int>&b){return a.first>b.first;};priority_queue <pair<int,int>>maxque;priority_queue <pair<int,int>,vector<pair<int,int>>,decltype(cmp)>minque;long sumwin=0;for(int i=0;i<k;i++){sumwin+=nums[i];maxque.push({nums[i],i});minque.push({nums[i],i});}int ansindex=0;long ans=(sumwin-maxque.top().first-minque.top().first)/(k-2);for(int j=k;j<nums.size();j++){sumwin=sumwin-nums[j-k]+nums[j];maxque.push({nums[j],j});minque.push({nums[j],j});while(maxque.top().second<=(j-k)){maxque.pop();}while(minque.top().second<=(j-k)){minque.pop();}long tem=(sumwin-maxque.top().first-minque.top().first)/(k-2);if(tem>ans){ans=tem;ansindex=j-k+1;}}return ansindex;
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int a, b;if (!(cin >> a >> b)) return 0;vector<int> value(a);for(int i=0;i<a;i++){cin>>value[i];}cout << maxwindow(value,b) +1<< endl;return 0;}// 64 位输出请用 printf("%lld")

参考答案

京东20250809

1.子序列的字典序

在这里插入图片描述

#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;vector <int> dicfunc(vector <int>& arr,int k){unordered_map<int,int> count;for(auto num:arr){count[num]++;}vector<int> coll;unordered_map<int,bool> flag;for(int i=0;i<arr.size();i++){count[arr[i]]--;if(flag[arr[i]])continue;while(!coll.empty()&&count[coll.back()]>0&&coll.back()>arr[i]){flag[coll.back()]=false;coll.pop_back();}coll.push_back(arr[i]);flag[arr[i]]=true;if(coll.size()==k)break;}return coll;}int main() {int n,k;cin>> n>>k;vector<int>arr(n);for(int i=0;i<n;i++){cin>>arr[i];}vector <int> ans=dicfunc(arr,k);for(int i=0;i<k;i++){cout<<ans[i];if(i!=k-1){cout<<" ";}}cout<<endl;return 0;
}
// 64 位输出请用 printf("%lld")

参考资料

http://www.dtcms.com/a/345070.html

相关文章:

  • 阿里云RDS MySQL数据归档全攻略:方案选择指南
  • (LeetCode 面试经典 150 题) 124. 二叉树中的最大路径和 (深度优先搜索dfs)
  • 大麦盒子DM4036刷包推荐
  • 停车场道闸的常见形式
  • 【会议跟踪】Model-Based Systems Engineering (MBSE) in Practice 2025
  • 场景题:内存溢出 和 内存泄漏 有啥区别?
  • Python-UV
  • Android夜间模式切换及自定义夜间模式切换按钮实现快速适配夜间模式
  • LeetCode Hot 100 第一天
  • 《器件在EMC中的应用》---TVS在EMC中的应用
  • 中国大学MOOC--C语言第十一周结构类型
  • 开源版CRM客户关系管理系统源码包+搭建部署教程
  • 3D打印小批量低成本打印玩具工艺品模型-中科米堆CASAIM
  • MTK Linux DRM分析(十三)- Mediatek KMS实现mtk_drm_drv.c(Part.1)
  • 深入解析TCP/UDP协议与网络编程
  • LeetCode100-239滑动窗口最大值
  • 利用DeepSeek编写从xlsx数据源调用duckdb执行已保存的查询SQL语句,并把查询结果保存到xlsx文件的程序
  • 电机驱动实现插补算法之脉冲和方向接收(以stm32主控为例)
  • 飞算JavaAI开发助手: 新手开发任务管理系统实战流程
  • STM32G4-比较器
  • Autosar之Com模块
  • Redis面试精讲 Day 27:Redis 7.0/8.0新特性深度解析
  • 基于STM32+Python+MySQL实现在线温度计设计和制作
  • 【高等数学笔记-极限(4)】极限的运算法则
  • 大麦盒子DM4036-精简固件包及教程
  • Vue2+Vue3前端开发_Day7
  • [TG开发]部署机器人
  • Java多线程编程与锁机制全解析(覆盖Java到Spring)
  • 从0到1打造一台机器人走起来
  • 技术解读|MatrixOne高效 CDC:基于快照的分布式数据库优化方案