Java
解决你平时遇到的Java题目
小只.
懒惰的程序猿
展开
-
Java合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3。输入:nums1 = [0], m = 0, nums2 = [1], n = 1。输入:nums1 = [1], m = 1, nums2 = [], n = 0。解释:需要合并的数组是 [] 和 [1]。输出:[1,2,2,3,5,6]原创 2024-07-26 17:49:42 · 502 阅读 · 0 评论 -
Java字符集合
每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。数据范围:输入的字符串长度满足 1≤n≤100 ,且只包含大小写字母,区分大小写。每组数据一行,按字符串原有的字符顺序,输出字符集合,即重复出现并靠后的字母不输出。输入一个字符串,求出该字符串包含的字符集合,按照字母输入的顺序输出。输入:abcqweracb。输出:abcqwer。原创 2024-07-26 16:29:33 · 231 阅读 · 0 评论 -
Java消失的数字
数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?原创 2024-07-23 23:12:32 · 712 阅读 · 0 评论 -
Java字符串中的单词数
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: "Hello, my name is John"输出: 5解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。原创 2024-07-23 15:40:46 · 397 阅读 · 0 评论 -
Java字符串最后一个单词的长度
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)说明:最后一个单词为nowcoder,长度为8。输入:hello nowcoder。原创 2024-07-22 21:49:18 · 233 阅读 · 0 评论 -
Java验证回文串
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。给你一个字符串 s,如果它是 回文串 ,返回 true;输入: s = “A man, a plan, a canal: Panama”解释:“amanaplanacanalpanama” 是回文串。解释:在移除非字母数字字符之后,s 是一个空字符串 “”。由于空字符串正着反着读都一样,所以是回文串。解释:“raceacar” 不是回文串。原创 2024-07-22 21:35:21 · 300 阅读 · 0 评论 -
Java字符串中的第一个唯一字符
给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。原创 2024-07-22 20:07:23 · 197 阅读 · 0 评论 -
Java转换成小写字母
给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。输出:“lovely”输出:“hello”原创 2024-07-22 14:34:54 · 409 阅读 · 0 评论 -
Java两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] ==你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。9 ,返回 [0, 1]。原创 2023-08-25 13:16:24 · 140 阅读 · 0 评论 -
Java只出现一次的数字
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。a ^ b ^ a = a ^ a ^ b = b(满足交换律)输入:nums = [4,1,2,1,2]^ :二进制数字异或,相同为0,不同为1。原创 2022-11-03 21:09:58 · 512 阅读 · 0 评论 -
Java求多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。输入: [3,2,3]原创 2022-11-03 20:46:46 · 251 阅读 · 0 评论 -
Java存在连续三个奇数的数组
给你一个整数数组 array,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true;否则,返回 false。输入:array = [1,2,34,3,4,5,7,23,12]输出:true。解释:存在连续三个元素都是奇数的情况,即 [5,7,23]。输入:array = [2,6,4,1] 输出:false。解释:不存在连续三个元素都是奇数的情况。原创 2022-11-03 19:47:37 · 384 阅读 · 0 评论 -
Java调整数组顺序使奇数位于偶数前面
两个while循环的判断条件不能单纯的写array[i]%2!=0(array[j]%2==0),要考虑到极端情况,就是当数组都是奇数(偶数)时。调整后可能是:[1, 5, 3, 4, 2, 6]或者为[1, 3, 5, 6, 4, 2]当数组int[] array = {1,3,5,7,9}时。当数组int[] array = {1,3,5,7,9}时。当数组int[] array = {2,4,6,8}时。当数组int[] array = {2,4,6,8}时。如数组:[1,2,3,4,5,6]原创 2022-10-26 20:27:46 · 448 阅读 · 0 评论 -
Java求自幂数
七位自幂数:北斗七星数:1741725,4210818,9800817,9926315。八位自幂数:八仙数:24678050,24678051,88593477。一位自幂数:独身数: 1,2,3,4,5,6,7,8,9。五位自幂数:五角星数:54748,92727,93084。三位自幂数:水仙花数:153,370,371,407。四位自幂数:四叶玫瑰数:1634,8208,9474。六位自幂数:六合数:548834。九位自幂数:九九重阳数。十位自幂数:十全十美数。原创 2022-10-24 22:31:51 · 1450 阅读 · 0 评论 -
Java冒泡排序详解
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。其实冒泡排序性能较低,Java 中内置了更高效的排序算法,就是Arrays.sort。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。3.针对所有的元素重复以上的步骤,除了最后一个。原创 2022-10-22 11:15:27 · 724 阅读 · 0 评论 -
Java数组逆置详解
我们首先找到起始下标和末尾下标,定义一个循环条件是起始下标小于末尾下标,当起始下标等于末尾下标时,就不用再进行转换。循环内部就将两元素调换。给定一个整型数组(也可以是其他类型),将数组中的元素逆置输出。原创 2022-10-20 17:57:23 · 1930 阅读 · 0 评论 -
Java二分查找详解
给定一个数组,首先判断是否有序,如果为无序,将数组变为有序。然后输入目标数字,返回该数字在数组中的的下标。二分查找只适用于有序数组,如果是无序数组,下标mid对应元素之前的下标是正确的,之后元素的下标无法找到。原创 2022-10-19 09:27:03 · 101 阅读 · 0 评论 -
Java汉诺塔问题详解
相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。(1)以C杆为中介,从A杆将1至n-1号盘移至B杆;(3)以A杆为中介,从B杆将1至n-1号盘移至C杆。(2)将A杆中剩下的第n号盘移至C杆;原创 2022-10-13 17:11:00 · 1132 阅读 · 0 评论 -
Java求每一位数字之和
只不过这个题目要求有返回值,改变返回值类型和一些代码即可。写一个递归方法,输入一个非负整数,返回组成它的数字之和。题目思路基本相同,感兴趣可以去了解一下。原创 2022-10-12 18:05:39 · 579 阅读 · 0 评论 -
Java按顺序打印数字的每一位详解
先执行①打印1,把①的结果返回给②,然后执行③打印2。然后把打印好的1和2返回给④,再执行⑤打印3,最后把打印好的1,2和3返回给⑥,最后执行⑦,这样子就结束了整个递归的过程。输入一个数字,按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) ,用递归实现。原创 2022-10-12 17:31:44 · 1857 阅读 · 0 评论 -
Java求斐波那契数列第n项详解
求斐波那契数列的第n项,用迭代(循环)实现。原创 2022-10-12 14:23:47 · 2585 阅读 · 2 评论 -
Java求一个整数的二进制序列详解
要想得到一个整数中的每一个二进制数字,只有让它每个二进制数字都按位与(&)上 1。获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。原创 2022-10-11 23:42:27 · 968 阅读 · 0 评论 -
Java打印X形图案详解
多组输入一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。那就直接上图(图中 i 和 j 的位置应该反了)正斜线行和列相同,反斜线行和列的和等于输入的。针对每行输入,输出用“*”组成的X形图案。原创 2022-10-11 13:55:23 · 782 阅读 · 0 评论 -
Java求出一个数字二进制中1的个数详解
3.中等,能判断正数和负数,效率比基础高(因为右移相当于除2,当n/2==0时,就没必要再去判断前面多余的0)2.基础改编,能判断正数和负数(因为是无符号右移,不管正负数,最左侧均为加0),但效率还是不高。只能判断正数,效率不高(因为要判断太多0,沉冗计算)如果两个二进制位都是 1, 则结果为 1, 否则结果为。4.高等,能判断正数和负数,并且效率非常高。二进制最右侧位不要了, 最左侧补符号位(二进制最右侧位不要了, 最左侧无论。一共有四种形式供大家参考。...原创 2022-08-12 14:20:50 · 2459 阅读 · 0 评论 -
Java求最小公倍数
所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。两种格式都是在求最大公约数的代码上增加了两行代码而已,并没有我们想象的那么复杂。由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即 a×b = 最大公约数×最小公倍数。从键盘输入两个数字,求他们的最小公倍数。只要懂得原理,稍加运用就能解决。...原创 2022-08-13 08:00:00 · 8346 阅读 · 2 评论 -
Java求出最大公约数
题目要求 从键盘输入两个数字,求他们的最大公约数所用方法:辗转相除法两种格式都没必要去刻意比较两个数字的大小再计算。如果a原创 2022-08-11 22:52:03 · 1652 阅读 · 3 评论 -
Java猜数字游戏
随机生成一个1-100之间的数据(也可以自己设置区间),提示用户猜测,猜大提示过大,猜小提示过小,直到猜中结束游戏。② 使用死循环让用户不断提示用户猜测,猜大提示过大,猜小提示过小,猜中结束游戏。若想定义一个[x,y] 的取值区间 (前提:y>x),令z=y-x。Math.random()是返回 [0,1) 之间的随机。个人倾向于用random()方法来定义,比较方便简洁。如果x=1,则括号内的 z+1 改为 z。1.导入Random包来定义。小知识:如何定义一个取值区间。原创 2022-05-10 13:14:32 · 3793 阅读 · 0 评论 -
Java求出1到100的所有整数中出现多少个数字9
实现代码//法1 for循环public class Main { public static void main(String[] args) { int count = 0;//记录9出现的次数 for (int i = 1; i <=100 ; i++) { if(i%10==9){//计算90以内的数,包括99 count++; } if(i/10原创 2022-05-09 16:29:30 · 1338 阅读 · 0 评论 -
Java输出n*n的乘法口诀表
题目要求输出n*n的乘法口诀表,n由用户输入实现代码import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int i , j; System.out.print("请输入数字:"); int n = s.nextInt();原创 2022-05-07 14:46:48 · 1296 阅读 · 1 评论 -
Java判断一个数字是否是素数
输入一个数字,判断它是否为素数(质数)。一共有三种方法供大家参考。原创 2022-05-06 14:26:55 · 19888 阅读 · 0 评论 -
Java打印1~100之间所有的素数
题目要求判断一个数是否为素数(质数):除了1和他本身不能被其他数整除实验思路两种方法1.嵌套循环,两个for循环2.do-while循环实现代码//法1public class Main { public static void main(String[] args) { int i, j; for(i=1; i<=100; i++){ for(j=2; j<i; j++){//判断除了1和本身能否被其他原创 2022-05-06 12:28:38 · 3777 阅读 · 0 评论 -
Java求n的阶乘
题目要求从键盘输入一个数字n,求出n的阶乘实现代码import java.util.Scanner;public class Main { public static int factorial(int x){//factorial:阶乘 int product = 1;//乘积 for (int i = 1; i <= x ; i++) { product = product * i; }原创 2022-05-05 12:24:37 · 7402 阅读 · 5 评论 -
Java求阶乘和
1.定义一个方法,方法里面使用一个循环,在调用时再使用一个循环反复调用。求 1~n 数字的阶乘和,n为键盘输入的数字。2.定义一个方法,方法里面使用嵌套循环。1.Scanner键盘输入技术。2.方法的定义和调用。...原创 2022-05-05 12:10:11 · 14518 阅读 · 0 评论 -
Java输出 1000 - 2000 之间所有的闰年
公历闰年判定遵循的规律为:四年一闰、百年不闰、400年再闰1.闰年能被4整除且不能100整除(即i%4==0 && i%100!=0)2.每400年一闰(i%400 ==0)易错提醒1.不能将三个条件合在一起,不然输出结果为02.也不能将这三个条件分开写或者随意组合,结果不为243实现代码public class Main { public static void main(String[] args) { int count =原创 2022-05-04 23:49:08 · 3694 阅读 · 2 评论 -
Java九九乘法表
输出九九乘法表原创 2022-05-04 16:18:49 · 432 阅读 · 0 评论 -
Java求出水仙花数
(Java)找出水仙花数题目要求水仙花数必须满足如下2个要求:1. 水仙花数是一个三位数2. 水仙花数的个位、十位、百位的数字立方和等于原数实现思路1.写出一个100~999的循环2.将个位,百位和十位求出并计算其平方和3.判断平方和是否与原数相同原创 2022-05-04 15:46:58 · 5510 阅读 · 0 评论