day03 笔试练习

ops/2024/10/20 5:45:52/

1.简写单词

题目链接:简写单词_牛客题霸_牛客网

    public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()){ // 输入多少读入多少char ch = sc.next().charAt(0); // 提取首字母if(ch >= 'a' && ch <= 'z'){System.out.print((char) (ch - 32));}else {System.out.print(ch);}}}

 2.dd爱框框

题目链接:登录—专业IT笔试面试备考平台_牛客网

解题思路:

注意:题目所给n个数字是从 a[1] 开始读入

我们创建两个变量 left,right,都从1下标位置开始记录,right一直向后移动直到相加的结果大于等于x的时候开始更新 retLeft 和 retRight 下标(retLeft 和 retRight指的是相加结果大于等于sum目前最小区间下标)

同时left下标向右移动一位,right在之前的位置上继续右移,因为输入的数字都是大于1的数字所以right没必要从left新下标开始相加,left右移sum只会减少,而right下标是第一次出现sum相加大于等于x的下标,所以前面的数字相加肯定是小于x的

只要right和left下标上的数字相加大于等于x并且长度比之前小的时候retLeft 和 retRight 就开始更新下标以此循环直到找出最小长度

public static void main(String[] args) throws IOException{Read read = new Read();int n = read.nextInt();int x = read.nextInt();int[] arr = new int[n + 1];int left = 1,right = 1;int sum = 0,retLeft = -1 , retRight = -1,retLen = n;for (int i = 1; i < n + 1; i++) {arr[i] = read.nextInt();}while(right <= n){//进窗口sum += arr[right];while(sum >= x){if(right - left + 1 < retLen){retLeft = left;retRight = right;retLen = right - left + 1;}sum -= arr[left++];}right++;}System.out.println(retLeft +" " + retRight);}static class Read // ⾃定义快读 Read 防止栈溢出{StringTokenizer st = new StringTokenizer("");BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));String next() throws IOException{while(!st.hasMoreTokens()){st = new StringTokenizer(bf.readLine());}return st.nextToken();}String nextLine() throws IOException {return bf.readLine();}int nextInt() throws IOException{return Integer.parseInt(next());}long nextLong() throws IOException{return Long.parseLong(next());}double nextDouble() throws IOException{return Double.parseDouble(next());}}

3.除2!(贪心+堆)

题目链接:登录—专业IT笔试面试备考平台_牛客网

 解题思路:

创建大根堆把偶数放进去,最大的偶数一直除二得到合就为最小

  public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(),k = sc.nextInt();PriorityQueue<Integer> heap = new PriorityQueue<>((a,b) ->{return b -a;});long sum = 0,x;for (int i = 0; i < n; i++) {x = sc.nextLong();sum+=x;if(x % 2 == 0){heap.add((int)x);}}while(!heap.isEmpty() && k-- != 0){long t = heap.poll()/2;sum -=t;if(t % 2 == 0){heap.add((int)t);}}System.out.println(sum);}


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

相关文章

Linux多线程

目录 背景知识 重谈地址空间​编辑 理解代码划分数据的本质 线程的概念和Linux中线程的实现 什么是线程 线程的优点 线程的缺点 线程异常 线程用途 澄清并统一进程与线程 见见线程 背景知识 重谈地址空间 理解代码划分数据的本质 虚拟地址本质是一种资源&#xf…

八、特殊类型异常机制

特殊类型&异常机制 数据类型枚举类型匿名类、单例类和伴生对象匿名类单例类伴生对象 委托模式密封类型异常机制异常的使用异常的处理 数据类型 对于那些只需要保存数据的类型&#xff0c;我们常常需要为其重写toString、equals等函数&#xff0c;针对于这种情况下&#xf…

【自定义网络协议】Java基于Vert.x的自定义TCP协议实现

在现代的软件开发中&#xff0c;TCP协议广泛应用于需要高效、低延迟数据传输的场景。相较于HTTP协议&#xff0c;TCP提供了更底层的控制和更高的性能&#xff0c;适用于嵌入式设备、实时数据传输等应用。Vert.x是一个基于事件驱动、异步和多线程的高效开发框架&#xff0c;特别…

【Linux网络】详解TCP协议(3)

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; Linux网络 &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解 TCP的流量控制和滑动窗口 的相关内容。 如果看到最后您觉得这篇…

Linux和指令初识

前言 Linux是我们在服务器中常用的操作系统&#xff0c;我们有必要对这个操作系统有足够的认识&#xff0c;并且能够使相关的指令操作。今天我们就来简单的认识一下这个操作的前世今生&#xff0c;并且介绍一些基础的指令操作 Linux的前世今生 要说Linux&#xff0c;还得从U…

深度学习基础—卷积神经网络示例

1.卷积神经网络的结构 在之前的博客《深度学习—简单的卷积神经网络》&#xff0c;仅由卷积层构成网络的全部&#xff0c;这还不是标准的网络结构&#xff0c;本文将继续介绍标准的卷积神经网络结构有哪些&#xff1f; 深度学习基础—简单的卷积神经网络https://blog.csdn.net…

qemu-system-aarch64开启user用户模式网络连接

一、问题 在使用qemu构建arm64的虚拟机时&#xff0c;虚拟机没有网络&#xff0c;桥接方式相对麻烦&#xff0c;我只是需要联网更新即可。与宿主机的通信我使用共享文件夹即可满足要求。 使用指令启动虚拟机时&#xff0c;网络部分的参数为 -net user,hostfwdtcp::10022-:22 …

【目标检测】桥梁表面缺陷检测数据集6710张7类缺陷VOC+YOLO格式

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;6718 标注数量(xml文件个数)&#xff1a;6718 标注数量(txt文件个数)&#xff1a;6718 标注…