京东笔试题

news2024/10/23 14:34:19

和谐敏感词

🔗 题目地址

在这里插入图片描述

🎉 模拟

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(); // 读取n
              m = sc.nextInt(); // 读取m
              k = sc.nextInt(); // 读取k
            int[][] 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个人达到战斗力mid
                if (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.coloradmin.cn/o/2221648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mapbox GL 加载GeoServer底图服务器的WMS source

貌似加载有点慢啊&#xff01;&#xff01; 1 这是底图 2 这是加载geoserver中的地图效果 3源码 3.1 geoserver中的网络请求 http://192.168.10.10:8080/geoserver/ne/wms?SERVICEWMS&VERSION1.1.1&REQUESTGetMap&formatimage/png&TRANSPARENTtrue&STYL…

Linux--epoll(ET)实现Reactor模式

Linux–多路转接之epoll Reactor反应堆模式 Reactor反应堆模式是一种事件驱动的设计模式&#xff0c;通常用于处理高并发的I/O操作&#xff0c;尤其是在服务器或网络编程中。 基本概念 Reactor模式又称之为响应器模式&#xff0c;基于事件多路复用机制&#xff0c;使得单个…

网络与信息安全工程师最新报考介绍(工信部教育与考试中心)

文章目录 前言 网络与信息安全工程师职业介绍主要的工作内容职业技能要求网络与信息安全工程师职业前景怎么样网络与信息安全工程师工作方向网络与信息安全工程师适学人群 如何入门学习网络安全 【----帮助网安学习&#xff0c;以下所有学习资料文末免费领取&#xff01;----】…

solidworks(sw)右侧资源栏变成英文,无法点击

sw右侧资源栏变成英文&#xff0c;无法点击&#xff0c;如图 使用xxclean 的扩展功能 SW右侧栏是英文 toolbox配置无效 这个按钮 修复完成之后重新打开软件查看是否变成中文。

[linux]快速入门

学习目标 通过学习能够掌握以下的linux操作 操作系统 按照应用领域的不同, 操作系统可以分为几类 桌面操作系统服务器操作系统移动设备操作系统嵌入式操作系统 不同领域的主流操作系统 桌面操作系统 Windows(用户数量最多)MacOS(操作体验好&#xff0c;办公人士首选)Linux…

Spring AI : Java写人工智能(LLM)的应用框架

Spring AI&#xff1a;为Java开发者提供高效集成大模型能力的框架 当前Java调用大模型时&#xff0c;面临缺乏优质AI应用框架的挑战。Spring作为资深的Java应用框架提供者&#xff0c;通过推出Spring AI来解决这一问题。它借鉴了langchain的核心理念&#xff0c;并结合了Java面…

解密 Redis:如何通过 IO 多路复用征服高并发挑战!

文章目录 一、什么是 IO 多路复用&#xff1f;二、为什么 Redis 要使用 IO 多路复用&#xff1f;三、Redis 如何实现 IO 多路复用&#xff1f;四、IO 多路复用的核心机制&#xff1a;epoll五、IO 多路复用在 Redis 中的工作流程六、IO 多路复用的优点七、IO 多路复用使用中的注…

安装buildkit,并使用buildkit构建containerd镜像

背景 因为K8s抛弃Docker了,所以就只装了个containerd,这样就需要一个单独的镜像构建工具了,就用了buildkit,这也是Docker公司扶持的,他们公司的人出来搞的开源工具,官网在 https://github.com/moby/buildkit 简介 服务端为buildkitd,负责和runc或containerd后端连接干活,目前…

w~自动驾驶合集6

我自己的原文哦~ https://blog.51cto.com/whaosoft/12286744 #自动驾驶的技术发展路线 端到端自动驾驶 Recent Advancements in End-to-End Autonomous Driving using Deep Learning: A SurveyEnd-to-end Autonomous Driving: Challenges and Frontiers 在线高精地图 HDMa…

windows文件拷贝给wsl2的Ubuntu

参考&#xff1a; windows文件如何直接拖拽到wsl中_win 移到文件到wsl-CSDN博客 cp -r /mnt/盘名/目标文件 要复制到wsl中的位置e.g.cp -r /mnt/d/byt5 /home Linux文件复制、移动、删除等操作命令_linux移动命令-CSDN博客 Linux 文件、文件夹的复制、移动、删除 - Be-myse…

构建后端为etcd的CoreDNS的容器集群(二)、下载最新的etcd容器镜像

在尝试获取etcd的容器的最新版本镜像时&#xff0c;使用latest作为tag取到的并非最新版本&#xff0c;本文尝试用实际最新版本的版本号进行pull&#xff0c;从而取到想的最新版etcd容器镜像。 一、用latest作为tag尝试下载最新etcd的镜像 1、下载镜像 [rootlocalhost opt]# …

多品牌摄像机视频平台EasyCVR海康大华宇视视频平台如何接入多样化设备

在实际的工程项目里&#xff0c;我们常常会面临这样的情况&#xff1a;项目管理者可能会决定使用多个品牌的视频监控摄像头&#xff0c;或者有需求将现有的、多种类型的监控系统进行整合。现在&#xff0c;让我们来探讨一下如何实现不同品牌摄像头的连接和使用。 1、GB/T281协议…

2024版最新148款CTF工具整理大全(附下载安装包)含基础环境、Web 安全、加密解密、密码爆破、文件、隐写、逆向、PWN

经常会有大学生粉丝朋友私信小强&#xff0c;想通过打CTF比赛镀金&#xff0c;作为进入一线互联网大厂的门票。 但是在CTF做题很多的时候都会用到工具&#xff0c;所以在全网苦寻CTF比赛工具安装包&#xff01; 关于我 有不少阅读过我文章的伙伴都知道&#xff0c;我曾就职于…

SSM框架实战小项目:打造高效用户管理系统 day3

前言 在前两篇博客中&#xff0c;后台已经搭建完毕&#xff0c;现在需要设计一下前端页面 webapp下的项目结构图 创建ftl文件夹&#xff0c;导入css和js 因为我们在后台的视图解析器中&#xff0c;设置了页面解析器&#xff0c;跳转路径为/ftl/*.ftl&#xff0c;所以需要ftl文件…

JAVA开源项目 网上订餐系统 计算机毕业设计

本文项目编号 T 018 &#xff0c;文末自助获取源码 \color{red}{T018&#xff0c;文末自助获取源码} T018&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 新…

Pycharm通过ssh远程docker容器搭建开发环境

本地pycharm通过ssh方式远程连接服务器&#xff08;Ubuntu&#xff09;上的docker容器&#xff0c;搭建开发环境。实现功能&#xff1a;将环境依赖打包成docker镜像&#xff0c;并在远程服务器中启动容器&#xff08;启动时做好端口映射和文件夹挂载&#xff09;&#xff0c;通…

负载箱的作用?

负载箱&#xff0c;顾名思义&#xff0c;就是用来承载电力设备的箱子。在电力系统中&#xff0c;负载箱的作用非常重要&#xff0c;它不仅可以模拟实际的电力负载&#xff0c;还可以对电力设备进行测试和调试&#xff0c;确保其正常运行。下面详细介绍负载箱的作用。 1. 模拟实…

15分钟学Go 第7天:控制结构 - 条件语句

第7天&#xff1a;控制结构 - 条件语句 在Go语言中&#xff0c;控制结构是程序逻辑的重要组成部分。通过条件语句&#xff0c;我们可以根据不同的条件采取不同的行动。今天我们将详细探讨Go语言中的两种主要条件结构&#xff1a;if语句和switch语句。理解这些控制结构对于编写…

复写零--双指针

一&#xff1a;题目描述 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 二&#xff1a;算法原理分析 三&#xff1a;代码编写 void duplicateZeros3(vector<int>& arr) {int dest -1, cur 0, n arr.size();//1.找到要复写的最后一个数字while …

qiankun 应用之间数据传递

qiankun 应用之间数据传递 全局共享 initGlobalState qiankun initGlobalState API 单击前往 qiankun 内部提供了 initGlobalState 方法用于注册 MicroAppStateActions 实例用于通信&#xff0c;该实例有三个方法&#xff0c;分别是onGlobalStateChange、setGlobalState、of…