- 博客(47)
- 收藏
- 关注
原创 2021_7_29(HJ56 完全数计算)
完全数(Perfectnumber),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。s输入n,请输出n以内(含n)完全数的个数。计算范围,0<n<=500000本题输入含有多组样例。输入描述:输入一个数字n输出描述:输出不超过n的完全数的个数示例1输入:10...
2021-07-29 16:58:03
449
原创 每日一题_7_8(NC66 两个链表的第一个公共结点)
输入两个无环的单链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)示例1输入:{1,2,3},{4,5},{6,7}返回值:{6,7}说明:第一个参数{1,2,3}代表是第一个链表非公共部分,第二个参数{4,5}代表是第二个链表非公共部分,最后的{6,7}表示的是2个链表的公共部分这3个参数最后在后台会组装成为2个两个无环的单链表,且是有公共节点的 示例2输入:{1},{2,3}
2021-07-08 22:48:08
241
1
原创 每日一题_7_8(判断一个链表是否为回文结构)
NC96判断一个链表是否为回文结构给定一个链表,请判断该链表是否为回文结构。示例1输入:[1]返回值:true示例2输入:[2,1]返回值:false说明:2->1 示例3输入:[1,2,2,1]返回值:true说明:1->2->2->1 用了一个栈把链表中的元素输入,如果出栈每一元素和链表的元素是一致的情况就证明是回文结构;public boolean isPail (L..
2021-07-08 20:20:21
205
原创 复习数据结构的内容链表;每日一题_7_8(NC70 单链表的排序)
给定一个无序单链表,实现单链表的排序(按升序排序)。示例1输入:[1,3,2,4,5]复制返回值:{1,2,3,4,5}过程比较麻烦,但还是比较好理解的,首先读取数据,读取链表的长度,将链表中的元素导入数组中,将数组进行排序,再将排序后的数组导成新的链表就可以了。public ListNode sortInList (ListNode head) { ListNode cur = head; if (head == null){
2021-07-08 17:03:15
142
原创 每日一题_6_10(乒乓球筐,查找兄弟单词)
import java.util.Arrays;import java.util.Scanner;/*链接:https://www.nowcoder.com/questionTerminal/bb4f1a23dbb84fd7b77be1fbe9eaaf32来源:牛客网nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类,并且每种球的数量不少于B盒中的数量,该怎么办呢?输入描述:输入有多组数据。每组数据包含两个字符串A、B,代表A.
2021-06-10 17:01:45
161
原创 每日一题_6_9(单词倒排,骆驼命名法)
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); //System.out.println(str); StringBuffer sb = new StringBuffer()...
2021-06-09 22:54:07
163
原创 每日一题_6_4(发邮件,最长上升子序列)
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()){ int N = sc.nextInt(); System.out.println(count(N)); } .
2021-06-04 21:27:57
139
原创 每日一题_6_3(字符串计数)
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String str1 = sc.next(); String str2 = sc.next(); ...
2021-06-04 09:02:51
147
原创 每日一题_5_30(Rational Arithmetic (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 rational numbers in the format "a
2021-05-30 18:30:30
142
原创 每日一题_5_27
剪花布条:链接:https://www.nowcoder.com/questionTerminal/1046cd038f7a4b04b2b77b415973de1c来源:牛客网一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?输入描述:输入包含多组数据。每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也
2021-05-27 17:54:58
82
原创 每日一题_5_18(数根)
数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24 来说,把2 和4 相加得到6,由于6 是一位数,因此6 是24 的数根。再比如39,把3 和9 加起来得到12,由于12 不是一位数,因此还得把1 和2 加起来,最后得到3,这是一个一位数,因此3 是39 的数根。现在给你一个正整数,输出它的数根。输入描述:输入包含多组数据。 每组数据数据包含
2021-05-18 19:45:50
349
原创 每日一题_5_15(微信红包)
链接:https://www.nowcoder.com/questionTerminal/fbcf95ed620f42a88be24eb2cd57ec54来源:牛客网春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。若没有金额超过总数的一半,返回0。测试样例:[1,2,3,2,2.
2021-05-15 20:29:23
228
原创 每日一题_5_14(找出字符串中第一个只出现一次的字符)
链接:https://www.nowcoder.com/questionTerminal/e896d0f82f1246a3aa7b232ce38029d4来源:牛客网找出字符串中第一个只出现一次的字符输入描述:输入几个非空字符串输出描述:输出第一个只出现一次的字符,如果不存在输出-1示例1输入asdfasdfoaabb输出o-1解析:这个就是暴力解法了,直接定一两个标志位,判断条件,在输出就可以了;import java.util.Scanner.
2021-05-14 19:39:42
99
原创 每日一题_5_13(洗牌;MP3光标位置)
洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌。接着把牌合并起来就可以了。 例如有6张牌,最开始牌的序列是1,2,3,4,5,6。首先分成两组,左手拿着1,2,3;右手拿着
2021-05-13 22:35:37
236
原创 每日一题_5_11(查找两个字符串a,b中的最长公共子串)
查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!本题含有多组输入数据!输入描述:输入两个字符串输出描述:返回重复出现的字符示例1输入abcdefghijklmnopabcsafjklmnopqrstuvw输出jklmnopimport java.util.Scanner;/*链接:https://www.nowcoder.
2021-05-11 14:15:17
143
原创 每日一题_5_9(统计兔子的数量,删数)
题目:有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?本题有多组数据。输入描述:输入int型表示month输出描述:输出兔子总数int型示例1输入9输出34考虑兔子一个月,两个月,有生育能力的,总数的数量;按照下面表格计算;import java.util.Scanner;public class Main { public static void..
2021-05-09 20:42:54
127
原创 牛客:寻宝题
在一个无限长的数轴上,某一处坐标上面有一个宝物。小红想拿到这个宝物,她会从原点出发,她每天先向右走的长度,然后再向左走的长度,然后第二天再继续右走。如果小红在移动的过程中路过这个宝物,小红就能捡起这个宝物。小红想知道,自己最快能在哪一天拿到这个宝物?输入描述:三个整数,依次表示宝物的坐标K,小红每天向右走的长度a,每天向左走的长度b。输出描述:如果小红永远拿不到宝物,则输出 -1。否则输出小红最快拿到宝物的天数。示例1输入复制2 1 12 1 1输出
2021-05-08 17:23:16
127
原创 每日一题_5_6(1)n个数里出现次数大于等于n/2的数,(2)不要二,输出一个最多可以放的蛋糕数
输入n个整数,输出出现次数大于等于数组长度一半的数。每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。输出描述:输出出现次数大于等于n/2的数。示例1输入3 9 3 2 5 6 7 3 2 3 3 3输出3代码中有将输入的一组数转成数组import java.util.Arrays;import java.util.Scanner;public class Count1 { public stati.
2021-05-06 18:15:04
107
原创 每日一题_4_30(完全数,扑克牌大小)
完全数题目:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:28,1+2+4+7+14=28。给定数计算n以内完全数的个数。计算范围, 0 < n <= 500000返回n以内完全数的个数。异常情况返回-1。输入描述:输入一个数字输出描述:输出完全数的个数示例1:输入1000输出3import java.util.Scanner;public c.
2021-04-30 18:44:22
181
1
原创 每日一题_4_29
输入一个整数,输出该数二进制表示中1的个数。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int num = scanner.nextInt();
2021-04-29 16:36:41
63
原创 合法的括号串
给定一个字符串A和其长度n,请返回一个bool值代表它是否为一个合法的括号串(只能由括号组成)。测试样例:"(()())",6返回:true测试样例:"()a()()",7返回:false测试样例:"()(()()",7返回:falseimport java.util.*;public class Parenthesis { public static void main(String[] args) {// Stack<
2021-04-27 22:28:45
183
原创 每日一题_4_27
在命令行输入如下命令:xcopy/sc:\d:\,各个参数如下:参数1:命令字xcopy参数2:字符串/s参数3:字符串c:\参数4:字符串d:\请编写一个参数解析程序,实现将命令行各个参数解析出来。解析规则:1.参数分隔符为空格2.对于用""包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy/s "C:\programfiles" "d:\"时,参数仍然是4个,第3个参数应该是字符串C:\programfiles,而不...
2021-04-27 19:22:29
59
原创 读入一个字符串str,输出字符串str中的连续最长的数字串
读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。import java.util.Scanner;public class Str { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String string = scanner.next...
2021-04-26 20:43:05
127
原创 每日一题_4_26
答案:D答案:CHashMap能够保证其中元素的顺序 这个是错误的,只有treeMap才能保证数据的顺序答案: D解析:FileInputStream用于读取诸如图像数据之类的原始字节流。如:FileInputStream fis=new FileInputStream(new File("D:\\123.txt"));//新建一个FileInputStream对象FileReader从InputStreamReader类继承而来。该类按字符读取流中数据。F...
2021-04-26 17:44:03
183
原创 请设计一种高效的算法返回A中存在的逆序对个数
给定一个int数组A和它的大小n,对于这组数能组成的任意两个数组,若前面一个大于后面一个数字,则这两个数字组成一个逆序对。请设计一种高效的算法返回A中存在的逆序对个数。要求n不大于5000。测试样例:[1,2,3,4,5,6,7,0],8返回:7解析:两个for循环实现从数组第一个元素与数组内其他元素进行比较,大于则,count++;最后返回count;import java.util.Scanner;public class AntiOrder { public
2021-04-26 14:07:11
264
原创 三个空汽水瓶可以换一瓶汽水
有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?解析:思路是每三瓶换一瓶,剩下两瓶的时候就可以直接在喝的瓶数上+1;进行除和取余操作就可以实现;import java
2021-04-26 14:03:30
613
原创 每日一题:4_25
答案:DArrayList list=new ArrayList();这种是默认创建大小为10的数组,每次扩容大小为1.5倍ArrayList list=new ArrayList(20);使用的ArrayList的有参构造函数,这种是指定数组大小的创建,创建时直接分配其大小,没有扩充。一次性为创建了传入的数字的长度的数组,所以,扩充为0次答案:CCallableStatement是prepareStatement的子接口PreparedStatement是statement..
2021-04-25 17:58:47
112
原创 递归方法解决网格问题
有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。给定两个正整数intx,inty,请返回机器人的走法数目。保证x+y小于等于12。测试样例:2,2返回:2主要思想:下面是一个3x3的网格,各顶点坐标如下,当它的横纵坐标中有一个坐标为1时证明,该点到目标顶点只有一条路可走,从起点(3,3)开始出发,共有两条路(2,3)和(3,2)——(x-1,y)和(x,y-1)下图为考虑走的路径,当它的横纵坐标中有一个..
2021-04-24 20:02:26
275
原创 牛牛跳高
在新的一年,牛牛想跳得更高。牛牛本身可以跳高h{h}h米。同时牛牛有n{n}n颗跳高弹,使用第i{i}i颗跳高弹可以使牛牛跳高高度增加aia_iai米,且跳高弹的效果是可以叠加的,也就是说如果牛牛使用多颗跳高弹,那么他的跳高高度将会增加这些跳高弹单个效果的和。每颗跳高弹只能使用一次。请问牛牛最少需要使用多少个跳高弹,才能让牛牛的高度至少是u{u}u米高呢?输入描述:第一行三个整数n,h,u{n},{h},{u}n,h,u。(1≤n≤5∗105,1≤h,u≤109)(1\leq n\leq 5
2021-04-24 17:57:42
279
原创 每日一题:4_21
答案:C一个类可以有多个子类,但是只能有一个直接父类,但是类对于接口可以多实现(接口本身可以多继承)答案:Cabstract 关键字,这个关键字声明了以后该类不能被实例化,之能让其子类继承它,这个类中必须声明有抽象方法才能被称为抽象类如果其中没有抽象方法则该类无法被称为抽象类。答案:D计算机软件主要分为系统软件与应用软件两大类。系统软件主要包括操作系统、语言处理系统、数据库管理系统和系统辅助处理程序。应用软件主要包括办公软件和多媒体处理软件。Java是一门面向对象编程语言,...
2021-04-21 18:07:50
495
1
原创 每日一题:4_19
解析:B解决哈希冲突的方法有三种,分别是:开放地址法:寻找下一个为空的数组下标,而后将冲突元素存储再散列法(二次哈希法):再次使用一个不同的哈希算法再计算一次 (第一次%16换另一个数进行%运算)链地址法(拉链法):将所有冲突元素按照链表存储,冲突后时间复杂度变为O(1+n)n为冲突元素个数)[hashMap就是用这种方法]解析:D解析:A CopyOnWriteArrayList适用于写少读多的并发场景。 ReadWriteLock即为读写锁,他要求:...
2021-04-20 17:12:46
109
原创 每日一题:4_15
解析:B软件生命周期分为 3 个阶段:软件定义阶段,任务是确定软件开发工作必须完成的目标,确定工程的可行性;软件开发阶段,任务是具体完成设计和实现定义阶段所定义的软件,通常包括总体设计、详细设计、编码和测试;软件维护阶段,任务是使软件在运行中持久地满足用户的需要。需求分析属于软件定义阶段的任务。解析:A结构化程序设计所规定的三种基本控制结构是顺序结构、选择结构、循环结构。解析:CSocket套接字,就是源端口号和目标端口号的组合服务器端:ServerSocke..
2021-04-18 18:14:08
68
原创 每日一题2021_4_14
选择题:解析:A1.创建线程有三个方式:继承Thread类,实现Runnable,实现Callable2.同步说的是必须等待一个事情完了才能去干另一间事情,异步说的是不需要停下来一直等待一个事件结束,在等待的过程中还可以进行别的事情。这个东西在Callable中call方法返回一个Future体现的淋漓尽致。3.线程创建时start方法,线程处于Runnable,线程只有run方法执行,才进入Running。解析:B代表引用的是实际的对象,对引用的修改就是对对象的修...
2021-04-16 20:25:25
67
原创 搜索树:
二叉搜索树(BST):每一个节点,左子树的值(key)<当前节点的值(key);右子树的值(key)>当前节点的值(key);搜索树相关的数据结构中不允许出现相同的值(key);得知搜索树的定义可以实现有关搜索树的方法:查找元素:public boolean find(int key){ Node current = root ; while(current!=null){ if(key == current.key){ return tru
2021-04-10 22:20:36
119
原创 排序知识梳理:冒泡,选择,插入,希尔,快速,排序方法
排序的稳定性:排序算法保证一定不会交换相等元素的相对位置;冒泡排序:主要思想:在数组中一组数据经过两两比较得到最大的元素到数组最后一个位置;经过双层循环:外层循环主要是考虑要经过多少次冒泡过程,再每一次冒泡过程中得到无序数组中的最大元素,内层循环表示一次冒泡过程中无需区间的相邻元素,需要两两比较一次;在这里用到了交换的方法所以先写了一个交换方法的代码;public static void swap(long[] array, int i, int j) { long t =
2021-04-05 22:30:49
151
原创 栈和队列知识的复习
栈的概念:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的 一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。压栈(push):栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈(pop):栈的删除操作叫做出栈。出栈是后进先出。查看栈顶元素(peek):只看栈顶元素不改变栈中的元素。进栈出栈的过程对栈进行压栈,出栈,查看栈顶元素代码操作:public static void main(String[] args.
2021-04-02 20:30:37
178
原创 二叉树的学习二
练习代码(1):在给一个树之后使这个树的元素都加1:和之前的递归方法时一样的原理public static void alladd1(TreeNode root){ if (root!=null){ root.val+=1; alladd1(root.right); alladd1(root.left); }}练习代码(2):求这个树的节点个数:可以把整个树考虑为三部分:根,左子树
2021-03-27 21:59:23
49
原创 二叉树的学习:前中后序遍历方法
二叉树的前中后序遍历:前序遍历:根,左子树,右子树;中序遍历:左子树,根,右子树;后序遍历:左子树,右子树,根;例如上图遍历结果:前序遍历:ABDEHCFG;中序遍历:DBEHAFCG;后序遍历:DHEBFGCA;首先建立树节点类,构造节点类的属性;public class TreeNode{ public int val; public TreeNode left;//指向该节点的左孩子 //left==
2021-03-27 20:57:21
789
原创 回顾链表中的方法一:头插 ,头删,遍历链表,尾插,尾删,反转链表,删掉链表中的某节点
首先需要定义一个链表节点类:public class Node{public int val; //元素;public Node next; //指向下一个节点对象,next=null表示链表的最后一个节点; }public Node(int val){this.val=val;this.next=null;}链表为空或者不为空时:head==null; head!=null; 插入节点;...
2021-03-25 17:41:54
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人