JavaSE练习
JavaSE练习题
aigo-2021
亿分耕耘一分收获
展开
-
【力扣】1337.矩阵中战斗力最弱的k行
给你一个大小为m* n的矩阵mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。返回矩阵中战斗力最弱的k行的索引,按从最弱到最强排序。原创 2022-07-27 09:42:53 · 217 阅读 · 0 评论 -
【力扣】1859.将句子排序
把一个 打乱顺序 的句子 s ,它包含的单词不超过 9 个,重新构造并得到原本顺序的句子。原创 2022-07-25 21:48:53 · 305 阅读 · 0 评论 -
【力扣】1030.距离顺序排列矩阵单元格
力扣:距离顺序排列矩阵单元格原创 2022-07-24 23:04:03 · 315 阅读 · 0 评论 -
【力扣】645.错误的集合
集合 s 包含从 1 到n的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。原创 2022-07-24 12:58:30 · 198 阅读 · 0 评论 -
【力扣】最接近的三数之和
给定一个长度为 n 的整数数组nums和 一个目标值target。请你从 nums 中选出三个整数,使它们的和与target最接近。返回这三个数的和。原创 2022-07-23 15:29:09 · 296 阅读 · 0 评论 -
【力扣】三数之和
三数之和给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?原创 2022-07-22 17:01:49 · 315 阅读 · 0 评论 -
【力扣】相对名次
相对名词原创 2022-07-19 23:23:51 · 123 阅读 · 0 评论 -
【数组中重复的数字】
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000class Solution { public int findRepeatNumber(int[] nums) { .原创 2022-04-29 23:56:46 · 130 阅读 · 0 评论 -
【两数相除】
题目描述给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333..) =转载 2022-04-17 15:51:44 · 194 阅读 · 0 评论 -
【整数数组加一】
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1].原创 2022-04-09 20:33:55 · 220 阅读 · 0 评论 -
【Z字形变换】
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int ...原创 2022-04-08 22:54:57 · 91 阅读 · 0 评论 -
Java中重载和重写的区别
练习:class Demo{ void show(int a,int b,float c){}}下面答案哪个是show方法的重载形式:A、void show(int a,float c,int b){}B、int show(int a,int b,float c){}C、int show(int a,float c,int b){return a;}D、int show(int a,float c){return a;}正确答案:ACD注意:1...原创 2022-04-07 23:06:52 · 1219 阅读 · 2 评论 -
Java面向对象练习易错
1.程序能否运行?若不能运行,改正后运行,并查看结果public class Test{ private intj = 0; private static boolean methodB(int k){ j += k; return true; } public static void methodA(int i){ static booleanb; b = i...原创 2022-04-06 23:25:07 · 863 阅读 · 0 评论 -
【只出现一次的数字】
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4方法一:判断排序数组前后元素是否相等import java.util.Arrays;public class Test { public int singleNumber(int[] nums) { //排序 Arrays.sort(nums); .原创 2022-04-02 22:31:42 · 416 阅读 · 4 评论 -
【无重复字符的最长子串】返回最大不重复字串的长度
题目描述:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。s 由英文字母、数字、符号和空格组成示例 1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所..原创 2022-04-01 22:50:32 · 313 阅读 · 0 评论 -
【字符串转换整数】
问题描述:实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数。函数myAtoi(string s) 的算法如下:1.读入字符串并丢弃无用的前导空格 2.检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。 3.读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。 4.将前面步骤读入的这些数字转换为整数(即,"123" ->...原创 2022-03-26 20:52:00 · 216 阅读 · 0 评论 -
【整数反转】
题目描述:给一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−,− 1] ,就返回 0。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0public class Solution { public int reverse(in...原创 2022-03-25 23:40:20 · 413 阅读 · 0 评论 -
Java基础易错
题1.public class Test1 { public static void main(String[] args) { int i=0; int j=5; st: for(;;i++) { //i=0 for(;;j--) { //一直执行第二层循环,直到执行结束为止 if(i>j) {//当j=-1时结束循环 break st; } } } System.out.println("i="+i+",j="+j); .原创 2022-03-24 20:48:26 · 482 阅读 · 0 评论 -
【最长回文子串】给一个字符串 s,找到 s 中最长的回文子串。
给一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"public class Solution { //判断整个字符串是否是回文 或者 传入的部分字符串是否是回文 public boolean isPalindrome(String s) { for (int i = 0; i < s.length() / 2; i++)原创 2022-03-23 23:53:58 · 1258 阅读 · 0 评论 -
【搜索插入位置】
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,3,5,6], target = 0输出: 0.原创 2022-03-19 21:44:22 · 80 阅读 · 0 评论 -
【移除元素】
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作原创 2022-03-15 22:08:39 · 66 阅读 · 0 评论 -
【最长公共前缀】
问题描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。public class Test { public String longestCommonPrefix(String[] strs) { //数组中第一个原创 2022-03-12 23:32:33 · 97 阅读 · 0 评论 -
【罗马数字转整数】
问题描述:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值 I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1 。12 写做XII,即为X+II。 27 写做XX...原创 2022-03-12 15:45:39 · 105 阅读 · 0 评论 -
利用多线程求解某范围素数,每个线程负责 1000范围:线程1找1-1000;线程 2 找 1001-2000;线程 3 找 2001-3000。 程序将每个线程找到的素数集中打印。最后输出素数的总数
【编程题】利用多线程求解某范围素数,每个线程负责 1000范围:线程1找1-1000;线程 2 找 1001-2000;线程 3 找 2001-3000。编程程序将每个线程找到的素数集中打印。所有的素数输出完毕后,再输出素数的总数;public class Test extends Thread { private int beg; pr...原创 2022-02-11 23:54:17 · 1825 阅读 · 0 评论 -
制作一个字符串数组,每个元素都有一些随意输入的数字和字母组成,要求找出里面每个数字,然后求出他们的和, 比如{“adf1f23“,“ju34ui21“}第一个元素的数字是123,第二个数字是3421
制作一个字符串数组,每个元素都有一些随意输入的数字和字母组成,要求找出里面每个数字,然后求出他们的和, 比如{"adf1f23","ju34ui21"}第一个元素的数字是123,第二个数字是3421他们的和是3421+123 =3544;public class TestString { public static int temp(String str) { char arr[]=str.toCharArray(); int temp=...原创 2022-02-16 23:28:32 · 824 阅读 · 0 评论 -
假设一个银行的ATM机,它可以允许用户存款也可以取款。现在一个账户上有存款200元,用户A和用户B都拥有在这个账户上存款和取款的权利。用户A存入100元,而用户B取出50元,最后账户的存款应是250元
假设一个银行的ATM机,它可以允许用户存款也可以取款。现在一个账户上有存款200元,用户A和用户B都拥有在这个账户上存款和取款的权利。用户A将存入100元,而用户B将取出50元,那么最后账户的存款应是250元。实际操作过程如下:(1) 先进行A的存款操作: 1) 得到账户的存款数额200,耗时2s。 2) 将账户数额增加100,耗时忽略不计 3) 将新生成的账户结果300返回到ATM机的服务器上,耗时2s(2) 再进行B的取款操作:...原创 2022-02-13 23:03:43 · 1607 阅读 · 0 评论 -
序列化和反序列化,Properties工具类
一、序列化和反序列化对象实现序列化后,可以进行网络传输或存储磁盘的功能。本质是,序列化就是将对象变成byte[]形式;反序列化 就是将byte[] 变成对象。对象要实现序列化,类一定要实现Serializable接口ObjectInputStream和ObjectOutputStream直接读写对象,前提是对象的类实现Serializable接口 public static void main(String[] args) { //将一个Person对象存储到te原创 2022-02-11 23:37:22 · 7603 阅读 · 0 评论 -
编写一个多线程的程序,用来模拟同时下载多个任务,并显示出下载百分比。如果100%,则线程结束。(用Thread解决)
编写一个多线程的程序,用来模拟同时下载多个任务,并显示出下载百分比。如果100%,则线程结束。(用Thread解决)public class MyThread extends Thread{ //通过重写run方法,将运行的代码写在run中 public MyThread(String name) { super(name); } @Override public void run() { for(int i = 1;i<.原创 2022-02-11 23:44:27 · 398 阅读 · 0 评论 -
调用Collections.sort()方法,比较两个Person对象(先按年龄比,年龄相同按姓名比),使用Lambda表达式作为参数传递。
调用Collections.sort()方法,比较两个Person对象(先按年龄比,年龄相同按姓名比),使用Lambda表达式作为参数传递。public class Person { public String name; public int age; public Person(String name, int age) { this.name = name; this.age = age; } //重写toStrin..原创 2022-02-15 23:17:21 · 734 阅读 · 0 评论 -
定义二分法查找
int[ ] nums={1,2,4,5,6,8,9,12,23,45,67,68,79,80,90,200};public static int binarySearch(int[ ] nums,int v,int start,int end){}思路:1.计算中间位置的索引2.用查找的值和中间位置作比较,如果比查找位置的大,递归调用(数组,中间+1,end);如果小,(数组,start,中间位置-1)3.直到查找的值和中间位置的相等(找到),或者start大于等于end(.原创 2022-02-15 17:17:10 · 289 阅读 · 0 评论 -
练习:使用BufferedWriter,向“f:/output“ 输出一句话“hello world“, 并能过BufferedReader,流读出这段文字
使用BufferedWriter,向"f:/output" 输出一句话"hello world", 并能过BufferedReader,流读出这段文字import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;//使用BufferedWriter,向"f:/output" 输出一句话"hello world",// 并能过BufferedReader,流读出这段文字public c.原创 2022-02-10 22:32:37 · 458 阅读 · 0 评论 -
【多线程练习】写一个生产者-消费者模式的多线程例子。
写一个生产者-消费者模式的多线程例子。(生产和消费的资源保持一个平衡)public class Test { private int count;//要求count保持在10 public synchronized void add(){ //生产者线程 ,当count>10,让生产者线程等待,唤醒消费者线程 while (count>10){ try { this.wait(..原创 2022-02-12 23:28:07 · 899 阅读 · 0 评论 -
设计两个个线程模拟存取款操作,其中一个线程每次随机存1~1000元钱,另外一个线程取1-1000元钱,如果余额不足,则取款失败,提示余额不足。写出程序(考虑并发问题)。
设计两个个线程模拟存取款操作,其中一个线程每次随机存1~1000元钱,另外一个线程取1-1000元钱,如果余额不足,则取款失败,提示余额不足。写出程序(考虑并发问题)。import java.util.Random;public class Bank { private float account; public Bank(float money) { this.account = money; } ..原创 2022-02-16 23:25:06 · 1401 阅读 · 0 评论 -
【练习】HashSet
区分:import java.util.HashSet;public class TestHashSet { public static void main(String[] args) { HashSet set=new HashSet(); set.add(1); //此时长度为:1 内容为:1 set.add(new Integer(1)); //此时长度为:1 1原创 2022-02-15 21:38:42 · 199 阅读 · 0 评论 -
【网络编程】使用TCP协议完成一个点对点传输文本的例子(聊天程序)
使用TCP协议完成一个点对点传输文本的例子【两个用户都是客户端和服务器端】一般情况下的服务器端和客户端之间的通信模型如图所示:用户Aimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket...原创 2022-02-14 23:57:27 · 933 阅读 · 0 评论 -
练习:通过Scanner读两句话,并写到一个文件中.通过PrintWriter来实现
通过Scanner读两句话,并写到一个文件中.通过PrintWriter来实现import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.PrintWriter;import java.util.Scanner;//通过Scanner读两句话,并写到一个文件中.通过PrintWriter来实现public class TestPrintWriter { public sta.原创 2022-02-10 22:26:09 · 572 阅读 · 0 评论 -
练习:写一个方法,可以将一个文件复制到另一个文件中
写一个方法,可以复制一个文件import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class CopyTest { public static void main(String[] args) { CopyTest c=new CopyTest(); .原创 2022-02-10 22:29:54 · 327 阅读 · 0 评论 -
存在重复元素,给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
存在重复元素给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。class Solution { public boolean containsDuplicate(int[] nums) { } }示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4...原创 2022-01-21 22:20:29 · 2186 阅读 · 0 评论 -
定义一个方法,求出字符串中有多少种字符,以及每个字符的个数 static void printCharInfo(String str)
定义一个方法,求出字符串中有多少种字符,以及每个字符的个数static void printCharInfo(String str) 例如有字符串 str="apple is a apple."; 方式一:public class String05 { public static void main(String[] args) { String str="apple is a apple."; printCharInfo(str); ...原创 2022-01-15 22:00:38 · 6249 阅读 · 2 评论