自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

转载 HashMap,LinkedHashMap,TreeMap的区别(转)

Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。HashMapHashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。遍历时,取得数据的顺序是完全随机的。  HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null。  HashMap不支持线程的同步(即任一时刻可以有多个线程同时写HashMap),可能会导致数据的不一致。如果需要同步,可以用 Collections的syn

2021-07-08 21:51:00 139

原创 HJ17 坐标移动

描述开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如:A10;S20;W10;D30;X;A1A;B10A11;;A10;处理过程:起点(0,0)A10 = (-10,0)

2021-07-05 11:30:55 94

原创 求int型正整数在内存中存储时1的个数

描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。输入描述:输入一个整数(int类型)输出描述:这个数转换成2进制后,输出1的个数示例1输入:5输出:2可以每次进行无符号右移(>>>),检查最右边的bit是否为1每次进行 n&=(n-1)操作,抹掉最右边的1import java.util.Scanner;public class Count_1 { public static void main(String[]

2021-07-03 21:43:33 72

原创 字符串排序

描述给定n个字符串,请对n个字符串按照字典序排列。输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。输出描述:数据输出n行,输出结果为按照字典序排列的字符串。示例1输入:9captocatcardtwotooupboatboot输出:boatbootcapcardcattotootwoup利用Arrays.sout自动排序import java.util.Arrays;

2021-07-03 21:07:20 77

原创 HJ13 句子逆序

描述将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符输入描述:输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。输出描述:得到逆序的句子示例1输入:I am a boy输出:boy a am Iimport java.util.Scanner;import java.util.Stack;public class Main { publ

2021-07-03 20:58:50 82

原创 字符串反转

描述接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)输入描述:输入一行,为一个只包含小写字母的字符串。输出描述:输出该字符串反转后的字符串。示例1输入:abcd输出:dcbaimport java.util.Scanner;import java.util.Stack;public class Main { public static void main(String[] args) { Scanner sc

2021-07-03 20:57:42 37

原创 字符个数统计

描述编写一个函数,计算字符串中含有的不同字符的个数。字符在ASCII码范围内(0~127,包括0和127),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次例如,对于字符串abaca而言,有a、b、c三种不同的字符,因此输出3。输入描述:输入一行没有空格的字符串。输出描述:输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。示例1输入:abc输出:3使用set.add判断元素是否重复import java.util.HashSet;

2021-07-03 20:25:25 131

原创 提取不重复的整数

描述输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。保证输入的整数最后一位不是0。输入描述:输入一个int型整数输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数示例1输入:9876673输出:37689// boolean add(E e) // 如果该集合已经包含该元素,返回false用set.add判断该元素是否已经用过// 注:先反转,再去重import java.util.HashSet;import java.

2021-07-03 20:15:24 55

原创 HJ8 合并表记录

描述数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)示例1输入:40 10 21 23 4输出:0 31 23 4HashMap和TreeMap本质区别:HashMap和TreeMap都继承自AbstractMap,不同的是HashMap实现的是Map接口,而T

2021-07-03 17:30:59 191

原创 HJ7 取近似值

描述写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。输入描述:输入一个正浮点数值输出描述:输出该数值的近似整数值示例1输入:5.5输出:6取出小数点后一位数字: 小数点后一位乘10,接着除10取余数判断与5的大小关系,进行操作即可import java.util.Scanner;public class Arrangement { public static void main(String[] a

2021-07-03 16:35:25 172

原创 HJ6 质数因子

描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )最后一个数后面也要有空格输入描述:输入一个long型整数输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。示例1输入:180输出:2 2 3 3 5求取质因子: j --> 2~Math.sqrt(num) 质因子查找结束的标志:num == 1若num != 1,说明还有一个本身为质数的因子未查找出来。i

2021-07-03 16:23:14 168

原创 进制转换x

描述写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。输入描述:输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。示例1输入:0xA0xAA输出:10170import java.util.HashMap;import java.util.Map;import java.util.Sc

2021-07-02 15:57:05 71

原创 字符串分隔

描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(输入多次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组示例1输入:abc123456789输出:abc000001234567890000000使用has.next连续输入/*•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符

2021-07-02 15:14:55 93

原创 计算某字母出现次数

描述写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写,字符串长度小于500。输入描述:第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字母。输出描述:输出输入字符串中含有该字符的个数。示例1输入:ABCabcA输出:2// 写出一个程序,接受一个由字母、数字和空格组成的字符串,// 和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写,// 字符串长度小于500。import j

2021-07-02 13:47:00 85

原创 字符串最后一个单词的长度

描述计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。输出描述:输出一个整数,表示输入字符串最后一个单词的长度。示例1输入:hello nowcoder输出:8说明:最后一个单词为nowcoder,长度为8// 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。import java.util.Scanner;public class LastLength {

2021-07-02 13:04:20 88

原创 走迷宫..

链接:https://www.nowcoder.com/questionTerminal/6276dbbda7094978b0e9ebb183ba37b9来源:牛客网NowCoder最喜欢游乐场的迷宫游戏,他和小伙伴们比赛谁先走出迷宫。现在把迷宫的地图给你,你能帮他算出最快走出迷宫需要多少步吗?输入描述:输入包含多组数据。每组数据包含一个10*10,由“#”和“.”组成的迷宫。其中“#”代表墙;“.”代表通路。入口在第一行第二列;出口在最后一行第九列。从任意一个“.”点都能一步走到上下

2021-06-16 11:06:31 79

原创 解读密码,

nowcoder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。输入描述:输入有多行。每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。输出描述:输出每段信息中数字信息。示例1输入$Ts!47&*s456 a23* +B9k输出47456239import java.u

2021-06-06 17:29:57 86

原创 最长上升子序列

链接:https://www.nowcoder.com/questionTerminal/d83721575bd4418eae76c916483493de来源:牛客网广场上站着一支队伍,她们是来自全国各地的扭秧歌代表队,现在有她们的身高数据,请你帮忙找出身高依次递增的子序列。 例如队伍的身高数据是(1、7、3、5、9、4、8),其中依次递增的子序列有(1、7),(1、3、5、9),(1、3、4、8)等,其中最长的长度为4。输入描述:输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000)

2021-06-04 19:15:48 64

原创 发邮件,,

NowCoder每天要给很多人发邮件。有一天他发现发错了邮件,把发给A的邮件发给了B,把发给B的邮件发给了A。于是他就思考,要给n个人发邮件,在每个人仅收到1封邮件的情况下,有多少种情况是所有人都收到了错误的邮件?即没有人收到属于自己的邮件。输入描述:输入包含多组数据,每组数据包含一个正整数n(2≤n≤20)。输出描述:对应每一组数据,输出一个正整数,表示无人收到自己邮件的种数。示例1输入2<br/>3输出1<br/>2/*这道题的核心在于 递归的思想

2021-06-04 16:53:18 61

原创 Rational Arithmetic (20)-有理算术(20)

For two rational numbers, your task is to implement the basic arithmetics, that is, to calculate their sum, difference,product and quotient.对于两个有理数,您的任务是实现基本算术,即计算它们的和、差、乘积和商。输入描述:Each input file contains one test case, which gives in one line the two

2021-05-30 17:43:52 127 2

原创 构建乘积数组

**给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]A[i+1]…A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)对于A长度为1的情况,B无意义,故而无法构建,因此该情况不会存在。示例1输入[1,2,3,4,5]输出[120,60,40,30,24]【解题思路】:B[i]的值可以看

2021-05-29 17:51:57 57

原创 个位数统计 (15)

给定一个k位整数N = dk-110k-1 + … + d1101 + d0 (0<=di<=9, i=0,…,k-1, dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。输入描述:每个输入包含1个测试用例,即一个不超过1000位的正整数N。输出描述:对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序输出。示例1输入100311输出0:2&lt

2021-05-28 20:38:06 440

原创 客似云来`

NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来;并且,所有人在这家店吃了两天早餐后,接下来每天都会带一位新朋友一起来品尝。于是,这家店的客人从最初一个人发展成浩浩荡荡成百上千人:1、1、2、3、5……现在,NowCoder想请你帮忙统计一下,某一段时间范围那他总共卖出多少份早餐(假设每位客人只吃一份早餐)。输入描述:测试数据包括多组。每组数据包含两个整数from和to(1≤from≤to≤80),分别代表开店的第from天和第to天。

2021-05-28 10:59:09 61

原创 Fibonacci数列

Fibonacci数列是这样定义的:F[0] = 0F[1] = 1for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。输入描述:输入为一个正整数N(1 ≤ N ≤ 1

2021-05-26 15:24:28 288

原创 数字颠倒,

输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001输入描述:输入一个int整数输出描述:将这个整数以字符串的形式逆序输出示例1输入1516000输出0006151import java.util.Scanner;public class Reserve { public static void main(String[] args) { Scanner scanner

2021-05-26 14:46:24 96

原创 末尾0的个数

输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2输入描述:输入为一行,n(1 ≤ n ≤ 1000)输出描述:输出一个整数,即题目所求示例1输入10输出2【解题思路】:任意挑选几个数字进行分解质因数,例如:6 = 2315 = 3564 = 222222 = 2^6100 = 2^2 * 5^2576 = 2^6 * 3^2那么我们在计算n的阶乘时,实际上就是把所有小于等于n的正整数分解成质因数,然后

2021-05-26 14:12:04 104

原创 数根

数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这是一个一位数,因此3 是39 的数根。现在给你一个正整数,输出它的数根。输入描述:输入包含多组数据。每组数据数据包含一个

2021-05-18 19:40:02 84

原创 MP3光标位置

MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲,光标初始的位置为第1首歌。现在要实现通过上下键控制光标移动来浏览歌曲列表,控制逻辑如下:1.歌曲总数<=4的时候,不需要翻页,只是挪动光标位置。光标在第一首歌曲上时,按Up键光标挪到最后一首歌曲;光标在最后一首歌曲时,按Down键光标挪到第一首歌曲。其他情况下用户按Up键,光标挪到上一首歌曲;用户按Down键,光标挪到下一首歌曲。2. 歌曲

2021-05-14 16:39:12 81

原创 查找两个字符串a,b中的最长公共子串

查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!本题含有多组输入数据!输入描述:输入两个字符串输出描述:返回重复出现的字符示例1输入abcdefghijklmnopabcsafjklmnopqrstuvw输出jklmnop结题思路:使用滑动窗口划过短串,同时在长串中查找子串是否存在,窗口宽度依次增加,直到等于短串的宽度。将长子串放入str1中,短子串

2021-05-11 14:37:10 214

原创 统计每个月兔子的总数

有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?本题有多组数据。输入描述:输入int型表示month输出描述:输出兔子总数int型示例1输入9输出34import java.util.Scanner;public class CountRabbit { public static void main(String[] args) { Scanner scanner = n

2021-05-10 13:55:53 53

原创 n个数里最小的k个

找出n个数里最小的k个输入描述:每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n不超过100。输出描述:输出n个整数里最小的k个数。升序输出示例1输入3 9 6 8 -10 7 -11 19 30 12 23 5输出-11 -10 3 6 7import java.util.Arrays;import java.util.Scanner;public class Min_n { public static void main(String[] args)

2021-05-10 13:47:07 40

原创 求最小公倍数

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。示例1输入5 7输出35import java.util.Scanner;public class MinCommonMul { public static void main(String[] args) { Scanner scanner = new Scanner(Syst

2021-05-06 22:26:07 145

原创 不要二

二货小易有一个W*H的网格盒子,网格的行编号为0~H-1,网格的列编号为0 ~ W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕的欧几里得距离不能等于2。对于两个格子坐标(x1,y1),(x2,y2)的欧几里得距离为:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算术平方根小易想知道最多可以放多少块蛋糕在网格盒子里。输入描述:每组数组包含网格长宽W,H,用空格分割.(1 ≤ W、H ≤ 1000)输出描述:输出一个最多可以放的蛋糕数示例1输入3

2021-05-06 19:44:15 151

原创 n个数里出现次数大于等于n/2的数

输入n个整数,输出出现次数大于等于数组长度一半的数。输入描述:每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。输出描述:输出出现次数大于等于n/2的数。示例1输入3 9 3 2 5 6 7 3 2 3 3 3输出3代码1:使用ArrayList排序后,中间值即为所求值scanner.hasNextInt():判断输入import java.util.*;public class Count { public static

2021-05-06 16:19:22 81

原创 计算糖果

标题A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。输入描述:输入为一行,一共4个整数,分别为A - B,B - C,A + B,B + C,用空格隔开。 范围均在-30到30之间(闭区间)。输出描述:输出为一行

2021-05-05 18:27:34 66

原创 神奇的口袋

有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。输入描述:输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……an的值。

2021-05-05 17:11:01 33

原创 用两个栈实现队列

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。/*【解题思路】:栈1用来作入队列 ,栈2不为空时,先栈2全部出栈到栈1,再入栈栈2用来出队列,栈1全部出栈到栈2,栈2再出栈(即出队列) */import java.util.Stack;public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer>

2021-05-05 17:08:53 24

原创 删除公共字符

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”输入描述:每个测试输入包含2个字符串输出描述:输出删除后的字符串示例1输入They are students. aeiou输出Thy r stdnts.package java0604;import java.util.Scanner;public class DelSameStr {

2021-04-30 19:03:57 50 1

原创 买苹果

小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。输入描述:输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果输出描述:输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1示例1输入20输出3package java0604;import java.util.Scanner;public cl

2021-04-30 17:15:38 78 1

原创 合法括号序列判断

给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。测试样例:."(()())",6返回:true测试样例:“()a()()”,7 返回:false测试样例:“()(()()”,7返回:falsepackage java0613;import java.util.Stack;/* * 1.碰到")"开始弹出栈顶的"(",如果此时栈为空,则返回false * 2.碰到其他内容直接返回false

2021-04-27 22:20:14 56

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除