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

京东笔试题

和谐敏感词

🔗 题目地址

在这里插入图片描述

🎉 模拟

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();String s = scanner.next();String[] words = new String[n];for (int i = 0; i < n; i++) {words[i] = scanner.next();}boolean[] st = new boolean[s.length()];for (int i = 0; i < n; i++) {int pos = 0;while(true) {pos = s.indexOf(words[i], pos);if(pos == -1)break;for (int j = pos; j < pos + words[i].length(); j++)st[j] = true;pos += 1;}}char[] ans = s.toCharArray();for(int i = 0; i < st.length; i++)if(st[i])ans[i] = '*';System.out.println(ans);}
}

每个区间内第k小的数

🔗 题目地址
在这里插入图片描述

🎉 大根堆


import java.util.PriorityQueue;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int k = sc.nextInt();int[] a = new int[n];for (int i = 0; i < n; i++)a[i] = sc.nextInt();PriorityQueue<Integer> heap = new PriorityQueue<>((o1, o2) -> o2 - o1);for (int i = 0; i < n; i++) {if (i < k - 1) {heap.add(a[i]);System.out.print(-1 + " ");continue;}if(heap.size() < k)heap.add(a[i]);else{if(a[i] < heap.peek()){heap.poll();heap.add(a[i]);}}System.out.print(heap.peek() + " ");}}
}

挑选战队

🔗 题目地址
在这里插入图片描述

🎉 二分 + 状态压缩DP

import java.util.Scanner;public class Main {private static final int INT_MAX = Integer.MAX_VALUE;static int n,m,k;public static void main(String[] args) {Scanner sc = new Scanner(System.in);int t = sc.nextInt(); // 读取样例个数for (int testCase = 0; testCase < t; testCase++) {n = sc.nextInt(); // 读取nm = sc.nextInt(); // 读取mk = sc.nextInt(); // 读取kint[][] attr = new int[n][m]; // 创建属性数组// 读取每个队员的属性值for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {attr[i][j] = sc.nextInt();}}// 二分查找初始化int l = 1, r = 1005, ans = 0;while (l < r) {int mid = (l + r) >> 1; // 计算中间值// 检查是否可以通过选择k个人达到战斗力midif (isPossible(attr, mid)) {ans = mid; // 更新答案l = mid + 1; // 增大左边界} else {r = mid; // 缩小右边界}}System.out.println(ans); // 输出结果}sc.close();}/*** 检查是否可以通过选择k个人达到战斗力mid* @param attr 队员的属性数组* @param mid 当前尝试的战斗力* @return 是否可以达到战斗力mid*/private static boolean isPossible(int[][] attr, int mid) {int fullMask = (1 << m) - 1; // 全属性掩码int[] masks = new int[n]; // 每个队员的属性掩码for (int i = 0; i < n; i++) { // 枚举每个队员int mask = 0;for (int j = 0; j < m; j++) {// 枚举队员的每个属性if (attr[i][j] >= mid) {mask |= (1 << j); // 更新掩码}}masks[i] = mask; // 存储掩码}int[] dp = new int[1 << m]; // dp[state]:表示达到 state 的状态需要的最少人数for (int i = 0; i < dp.length; i++) {dp[i] = INT_MAX; // 初始化dp数组}dp[0] = 0; // 初始状态// 更新dp数组for (int i = 0; i < n; i++) {int pmask = masks[i]; // 当前队员的属性掩码for (int state = 0; state < fullMask; state++) {if (dp[state] != INT_MAX) { // 起点是 state,借助 pmask 转移,重点是(state|pmask)dp[state | pmask] = Math.min(dp[state | pmask], dp[state] + 1); // 更新dp数组}}
//            for (int state = fullMask; state >= 0; state--) {
//                if (dp[state] != INT_MAX) { // 起点是 state,借助 pmask 转移,重点是(state|pmask)
//                    dp[state | pmask] = Math.min(dp[state | pmask], dp[state] + 1); // 更新dp数组
//                }
//            }}return dp[fullMask] <= k; // 检查是否可以通过选择k个人达到战斗力mid}
}
http://www.lryc.cn/news/466783.html

相关文章:

  • URP学习(一)
  • Linux中修改和查看Redis的内存大小
  • uniapp中的页面跳转
  • Redis|延迟双删策略的优点和缺点是什么?
  • 【计算机网络 - 基础问题】每日 3 题(五十二)
  • LogStash架构分析
  • 2024最新最全【大模型学习路线规划】零基础入门到精通!,大模型学习干货分享,总结的太详细了
  • QT界面开发:图形化设计、资源文件添加
  • 科大讯飞:成本降低 60%,性能提升 10 倍,从 ES Loki 到 Apache Doris 可观测性存储底座升级
  • ISO26262在汽车领域的意义
  • 11. 事件机制
  • MySQL 本地社区版安装(不登录) mysql官网链接
  • Redis Search系列 - 第三讲 拼写检查
  • Golang | Leetcode Golang题解之第492题构造矩形
  • Axure重要元件三——中继器函数
  • MySQL8.0.40编译安装
  • JavaScript 第23章:WebSocket 与实时通讯
  • 简单汇编教程10 数组
  • Jsoup在Java中:解析京东网站数据
  • SQL 干货 | SQL 反连接
  • JSON 反对序列化 public final class LocalDateTime 日期格式错误
  • Java 集合
  • 爬虫日常实战
  • 复写零--双指针
  • 跟着小土堆学习pytorch(二)——TensorBoard和Transform
  • 自由学习记录(10)
  • Redis提供了专门的命令来实现自增操作
  • uniapp修改input中placeholder样式
  • GenerativeU:生成式开放目标检测
  • element plus e-table表格中使用多选,当翻页时已选中的数据丢失