
本系列可作为JAVAEE初阶学习系列的笔记文中提到的一些练习的代码小编会将代码复制下来大家复制下来就可以练习了方便大家学习。点赞关注不迷路您的点赞、关注和收藏是对小编最大的支持和鼓励系列文章目录JAVA初阶---------已更完JAVA数据结构---------已更完数据库初阶----------已更完JAVA EE初阶---------正在更新JAVA算法刷题---DAY 0 JAVA的快速IOJAVA算法刷题---DAY1 数字统计、两个数组的交集、点击消除JAVA算法刷题---DAY2 牛牛的快递、最小花费爬楼梯、数组中两个字符串的最小距离JAVA算法刷题---DAY 3 简写单词 dd爱框框 除2目录目录系列文章目录目录前言1.简写单词描述输入描述输出描述示例1示例22.dd爱框框描述输入描述输出描述示例13.除2题目描述输入描述:输出描述:输入输出说明总结前言小编作为新晋码农一枚会定期整理一些写的比较好的代码作为自己的学习笔记会试着做一下批注和补充如转载或者参考他人文献会标明出处非商用如有侵权会删改欢迎大家斧正和讨论今天的练习使用快速IO 详情可以查看 JAVA算法刷题---DAY 0 JAVA的快速IO1.简写单词题目链接简写单词_牛客题霸_牛客网描述规定一种对于复合词的简写方式只保留每个组成单词的首字母并将首字母大写后再连接在一起。例如∙ ∙“College English Test”可简写为“CET”∙ ∙“Computer Science”可简写为“CS”∙ ∙“I am Bob”可简写为“IAB”。现在输入一个由若干单词组成的复合词请输出它的简写形式。输入描述在一行中输入一个复合词由若干单词组成。∙ ∙单词数 sumsum 满足 1≦sum≦1001≦sum≦100∙ ∙每个单词长度 lenlen 满足 1≦len≦501≦len≦50∙ ∙单词之间由单个空格分隔∙ ∙每个单词仅由大小写英文字母组成。输出描述输出一个字符串为复合词的简写形式。简写方式为取每个单词的首字母并将其转换为大写然后按原单词顺序依次连接。请不要输出多余的空格或换行。示例1输入International Collegiate Programming Contest复制输出ICPC复制示例2输入Super mySQL复制输出SMimport java.util.*; import java.io.*; public class Main { public static PrintWriter out new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))); public static Read in new Read(); public static void main(String[] arg) throws IOException { String line; while ((line in.nextLine()) ! null) { // 替换isBlankJava8兼容写法 if (line.trim().isEmpty()) continue; StringTokenizer st new StringTokenizer(line); while (st.hasMoreTokens()) { String word st.nextToken(); char first word.charAt(0); if (first a first z) { out.print((char) (first - 32)); } else { out.print(first); } } } out.close(); } } class Read { StringTokenizer st; BufferedReader bf new BufferedReader(new InputStreamReader(System.in)); String next() throws IOException { while (st null || !st.hasMoreTokens()) { String line bf.readLine(); if (line null) return null; st new StringTokenizer(line); } 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()); } }2.dd爱框框题目链接dd爱框框_牛客题霸_牛客网描述读入nxnx,给出nn个数a[1],a[2],……,a[n]a[1],a[2],……,a[n],求最小的区间[l,r][l,r]使a[l]a[l1]……a[r]≥xa[l]a[l1]……a[r]≥x若存在相同长度区间输出ll最小的那个输入描述第一行两个数n(1≤n≤10000000),x(1≤x≤10000)第二行n个数a[i](1≤a[i]≤1000)输出描述输出符合条件l,r(保证有解)示例1输入10 20 1 1 6 10 9 3 3 5 3 7复制输出3 5import java.util.*; import java.io.*; public class Main{ public static PrintWriter outnew PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))); public static Read innew Read(); public static void main(String[] args) throws IOException{ int nin.nextInt(),xin.nextInt(); int[] arrnew int[n1]; for(int i1;in;i){ arr[i]in.nextInt(); } int left1,right1,sum0; int retleft-1,retright-1,retlenn; while(rightn){ sumarr[right]; while(sumx){ if(right-left1retlen){ retleftleft; retrightright; retlenright-left1; } sum-arr[left]; } right; } out.println(retleft retright); out.close(); } } class Read{ StringTokenizer stnew StringTokenizer( ); BufferedReader bfnew BufferedReader(new InputStreamReader(System.in)); String next() throws IOException{ while(!st.hasMoreTokens()){ stnew 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题目链接除2题目描述给一个数组一共有 n n\ n 个数。你能进行最多 k k\ k 次操作。每次操作可以进行以下步骤选择数组中的一个偶数 aia_iai将其变成 ai/2a_i/2ai/2 。现在你进行不超过 k k\ k 次操作后让数组中所有数之和尽可能小。请输出这个最小的和。输入描述:第一行输入两个正整数 n n\ n 和 k k\ k 用空格隔开第二行输入n n\ n 个正整数 aia_iai数据范围1≤n≤1000001≤k≤1091 ≤ n≤1000001≤k≤10^91≤n≤1000001≤k≤1091≤ai≤1091≤a_i≤10^91≤ai≤109输出描述:一个正整数代表和的最小值。示例1输入复制5 3 2 4 8 10 115 3 2 4 8 10 11输出复制2424说明对8操作2次对10操作1次最后的数组是2 4 2 5 11。可以证明这样的操作是最优的。import java.util.*; import java.io.*; public class Main{ public static PrintWriter outnew PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))); public static Read innew Read(); public static void main(String[] args) throws IOException{ int nin.nextInt(),kin.nextInt(); long sum0; PriorityQueueInteger heapnew PriorityQueue((a,b)-{return b-a;}); for(int i0;in;i){ int xin.nextInt(); sumx; if(x%20){ heap.add((int)x); } } while(!heap.isEmpty()k--!0){ int x(int)heap.poll()/2; sum-x; if(x%20){ heap.add((int)x); } } out.println(sum); out.close(); } } class Read{ StringTokenizer stnew StringTokenizer( ); BufferedReader bfnew BufferedReader(new InputStreamReader(System.in)); String next() throws IOException{ while(!st.hasMoreTokens()){ stnew 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()); } }总结以上就是今天要讲的内容本文简单记录了算法刷题内容仅作为一份简单的笔记使用大家根据注释理解您的点赞关注收藏就是对小编最大的鼓励