自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 历届真题 杨辉三角形【第十二届】【省赛】【研究生组】

思想:自己造杨辉三角代码:import java.util.Scanner; public class Main { public static void main(String[] args) { //创建数组,大小自己设定,可以写一个测试函数,测试当前大小的数组的最大值是否大于1000000000 long[][] arr = new long[33][10000]; //构造杨辉三角 for(in...

2022-03-15 16:03:11 1053

原创 历届真题 砝码称重【第十二届】【省赛】【研究生组】

思想:set去重,边遍历边修改set会报错,先用list复制set,遍历list,修改set.代码:import java.util.*;import java.text.*;import java.math.*;public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int n = scan.nextInt(); Set&lt...

2022-03-15 15:30:51 563

原创 历届真题 双向排序【第十二届】【省赛】【研究生组】

思想:数组类的使用代码import java.util.*;public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); int len = scan.nextInt(); int n = scan.nextInt(); int[] arr = new int[len]; for(int i = 0; i < le...

2022-03-14 20:55:47 1059

原创 试题 历届真题 时间显示【第十二届】【省赛】【研究生组】

思想:date类的使用代码import java.util.*;import java.text.SimpleDateFormat;public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); long num = scan.nextLong(); num -= 8*60*60*1000; Date date = new ...

2022-03-14 20:53:22 862

原创 每日一题- ​面试题19. 正则表达式匹配​

请实现一个函数用来匹配包含'. '和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"和"ab*a"均不匹配。示例 1:输入:s = "aa"p = "a"输出: false解释: "a" 无法匹配 "aa" 整个字符串。class Solution { public boolean...

2022-02-22 12:03:29 76

原创 NC66 两个链表的第一个公共结点

描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围:n≤1000n≤1000要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)例如,输入{1,2,3},{4,5},{6,7}时,两个无环的单向链表的结构如下图所示:可以看到它们的第一个公共结点的结点值为6,所以返回结点值为6的结点。/*public class ListNod...

2022-02-22 12:02:37 213

原创 NC127 最长公共子串

目录描述示例1思想:动态规划代码描述给定两个字符串str1和str2,输出两个字符串的最长公共子串题目保证str1和str2的最长公共子串存在且唯一。数据范围:1≤∣str1∣,∣str2∣≤50001≤∣str1∣,∣str2∣≤5000要求: 空间复杂度O(n2)O(n2),时间复杂度O(n2)O(n2)示例1输入:"1AB2345CD","12345EF"复制返回值:"2345"思想:动态规划代码import j...

2022-02-20 17:06:43 263

原创 每日一题- ​剑指 Offer 18. 删除链表的节点​

目录描述示例 1:代码描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.代码/** * Definition for singly-linked list. * publ

2022-02-20 17:03:59 675

原创 NC14 按之字形顺序打印二叉树

描述给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)数据范围:0≤n≤15000≤n≤1500,树上每个节点的val满足∣val∣<=100∣val∣<=100要求:空间复杂度:O(n)O(n),时间复杂度:O(n)O(n)例如:给定的二叉树是{1,2,3,#,#,4,5}该二叉树之字形层序遍历的结果是[[1],[3,2],[4,5]]import java.util.*;/*publi.

2022-02-19 21:59:28 46

原创 每日一题- ​剑指 Offer 17. 打印从1到最大的n位数​

描述输入数字n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]代码class Solution { public int[] printNumbers(int n) { //方法一: // int m = 1; // while(n > 0){ // m .

2022-02-19 21:02:44 129

原创 每日一题- ​剑指 Offer 16. 数值的整数次方​

描述实现pow(x,n),即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25代码class Solution { publ...

2022-02-19 20:47:47 7245

原创 NC53 删除链表的倒数第n个节点

目录描述示例1思想:双指针代码知识点链表双指针描述给定一个链表,删除链表的倒数第n个节点并返回链表的头指针例如,给出的链表为:1→2→3→4→51→2→3→4→5,n=2n=2.删除了链表的倒数第nn个节点之后,链表变为1→2→3→51→2→3→5.数据范围:链表长度0≤n≤10000≤n≤1000,链表中任意节点的值满足0≤val≤1000≤val≤100要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)备注:题...

2022-02-18 13:13:25 502

原创 每日一题- ​剑指 Offer 22. 链表中倒数第k个节点​

描述输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5....

2022-02-18 12:55:23 282

原创 NC52 有效括号序列

目录描述示例1示例2思想:栈代码描述给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。数据范围:字符串长度 0≤n≤100000≤n≤10000要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)示例1输入:"["复制返回值:false复制示例2输入:

2022-02-15 12:23:24 191

原创 每日一题- ​剑指 Offer 29. 顺时针打印矩阵​

目录描述示例 1:思想:顺序打印代码描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]思想:顺序打印代码class Solution {

2022-02-15 12:06:11 57

原创 每日一题- ​剑指 Offer 15. 二进制中1的个数​

目录描述示例 1:思想:位运算代码:描述编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量).)。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。 在 Java 中,编译器使用二进制补码记法来表示有符号整数。因此,在上面的示例 3中,...

2022-02-12 11:14:52 300

原创 NC3 链表中环的入口结点

目录描述输入描述:返回值描述:思想:描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围:n≤10000n≤10000,1<=结点值<=100001<=结点值<=10000要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)例如,输入{1,2},{3,4,5}时,对应的环形链表如下图所示:可以看到环的入口结点的结点值为3,所以返回结点值为3的结点。输入描述:输入分为2...

2022-02-12 11:13:13 66

原创 每日一题- ​​剑指 Offer 21. 调整数组顺序使奇数位于偶数前面​

难度简单194输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。class Solution { public int[] exchange(int[] nums) { int n = nums.length; if(n == 0 || n == 1) retur..

2022-02-11 17:20:04 531

原创 NC22 合并两个有序的数组

题目 题解(53) 讨论(69) 排行简单通过率:35.21%时间限制:1秒空间限制:32M知识点数组双指针描述给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组B合并到数组 A 中,变成一个有序的升序数组数据范围:0≤n,m≤1000≤n,m≤100,∣Ai∣<=100∣Ai​∣<=100,∣Bi∣<=100∣Bi​∣<=100注意:1.保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素...

2022-02-11 17:18:45 154

原创 NC4 判断链表中是否有环

题目 题解(213) 讨论(363) 排行简单通过率:38.83%时间限制:1秒空间限制:32M知识点链表描述判断给定的链表中是否有环。如果有环则返回true,否则返回false。数据范围:链表长度0≤n≤100000≤n≤10000,链表中任意节点的值满足∣val∣<=100000∣val∣<=100000要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)输入分为两部分,第一部分为链表,第二部分代表是否有环,然后将...

2022-02-09 13:10:12 621

原创 ​每日一题- 剑指 Offer 28. 对称的二叉树​

目录描述思想:递归代码描述请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3思想:递归代码/** * Definition f...

2022-02-08 12:51:23 191 1

原创 两个线程交替打印1-10的奇偶数.java

package xiancheng.lunliudayin;//两个线程交替打印1-10public class Lunliu1 { private int num = 1; private Object lock = new Object(); public void printnum(String name, int target){ for(int i = 0; i < 5; i++){ synchronized (lock).

2022-02-08 12:42:11 572

原创 不同方式实现三个线程轮流打印10次ABC.线程通信.java

目录方式一:synchronized+wait/notify()方式二:join()方式三:lock()方式四:lock()+条件变量方式五:semaphore方式一:synchronized+wait/notify()package xiancheng.lunliudayin.Lunliuall;//三个线程轮流打印A B C 打印10次 - synchronizedpublic class Lunliu { private int num; priv

2022-02-08 12:40:12 202

原创 自定义锁的代码实现java

目录步骤1:自定义同步器步骤2:自定义锁步骤3:测试步骤1:自定义同步器package xiancheng.AQSsuo;import java.util.concurrent.locks.AbstractQueuedSynchronizer;import java.util.concurrent.locks.Condition;//重写AQS的方法 - 自定义同步器public class Mysyn extends AbstractQueuedSynchronize

2022-02-07 19:40:49 127

原创 NC41 最长无重复子数组

描述给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组数据范围:0≤arr.length≤1050≤arr.length≤105,0<arr[i]≤1050<arr[i]≤105要求:空间复杂度O(n)O(n),时间复杂度O(nlogn)O(nlogn)示例1输入:[2,3,4,5]复制返回...

2022-02-06 15:05:37 403

原创 每日一题- ​剑指 Offer 27. 二叉树的镜像​

目录描述示例 1:思想:递归代码描述请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4 / \ 2 7/ \ / \1 3 6 9镜像输出: 4 / \ 7 2/ \ / \9 6 3 1示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]思想:递归代码/** * Definition...

2022-02-06 14:47:34 163

原创 快速手写简易线程池.java

目录步骤1:任务队列步骤2:线程池步骤3:测试步骤1:任务队列package xiancheng.xianchengchi;import java.util.ArrayDeque;import java.util.Deque;import java.util.Queue;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;public

2022-02-06 11:49:25 343 1

原创 NC19 连续子数组的最大和

目录描述示例1思想:动态规划代码题目 题解(179) 讨论(1k) 排行简单通过率:39.47%时间限制:2秒空间限制:64M知识点动态规划贪心描述输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。数据范围:1<=n<=2×1051<=n<=2×105−100<=a[i]<=100−100<=a[i]<=100要求:时间复杂度为...

2022-02-05 11:45:12 725

原创 每日一题- ​剑指 Offer 26. 树的子结构​

目录描述示例 1:思想:递归代码描述输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \1 2给定的树 B: 4 /1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示...

2022-02-05 11:39:03 47

原创 NC50 链表中的节点每k个一组翻转

NC50链表中的节点每k个一组翻转题目 题解(134) 讨论(266) 排行中等通过率:37.91%时间限制:1秒空间限制:64M知识点链表描述将给出的链表中的节点每 k个一组翻转,返回翻转后的链表如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。数据范围:0≤n≤20000≤n≤2000,1≤k≤20001≤k≤2000,链表中每个元素都满足0≤val≤10000≤val≤1000要求空...

2022-01-30 14:13:47 55

原创 ​剑指 Offer 25. 合并两个排序的链表​

难度简单201输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode n1 = l1; ListNode n2 = l2; ListNode head = new L..

2022-01-30 13:52:04 402

原创 ​剑指 Offer 14- I. 剪绳子​

目录描述示例 1:思想:动态规划代码描述给你一根长度为n的绳子,请把绳子剪成整数长度的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1]...k[m-1]。请问k[0]*k[1]*...*k[m-1]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例2:输入...

2022-01-29 17:47:47 399

原创 NC68 跳台阶

目录描述示例1思想:动态规划代码描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围:1≤n≤401≤n≤40要求:时间复杂度:O(n)O(n) ,空间复杂度: O(1)O(1)示例1输入:2复制返回值:2复制说明:青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2 思想:动态规划代码public cla

2022-01-29 17:29:38 440

原创 java是否可以覆盖一个private或static的方法

“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能访问到private变量或方法的,当然也不能覆盖。...

2022-01-28 12:54:53 1789

原创 java中字符串常量池、class文件常量池、运行时常量池的区别

Java有三种常量池,即字符串常量池、class文件常量池、运行时常量池。1. 字符串常量池——特殊的常量池,存在于方法区(method are), 不是堆字符串常量池在每个VM中只有一份,他在内存中的位置如图,红色箭头所指向的区域Interned Strings, 存在于方法区, 不是堆抽象图String str1 = “abc”;String str2 = “abc”;String str3 = “abc”;//new 一定会新建对象——且会有类...

2022-01-27 21:18:44 1057 1

原创 java是编译性语言还是解释性语言?

一、你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。二、你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。像C、C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的 所以他们是编译型的语言。没有经过第二次的处理 而Java不一样他..

2022-01-27 18:16:21 349

原创 NC76 用两个栈实现队列

目录描述示例1示例2描述用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。数据范围:n≤1000n≤1000要求:存储n个元素的空间复杂度为O(n)O(n),插入与删除的时间复杂度都是O(1)O(1)示例1输入:["PSH1","PSH2","POP","POP"]复制返回值:1,2复制说明...

2022-01-27 14:37:42 39

原创 NC33 合并两个排序的链表

目录描述示例1示例2示例3思想:两个比较,小的加入新链表中代码描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围:0≤n≤10000≤n≤1000,−1000≤节点值≤1000−1000≤节点值≤1000要求:空间复杂度O(1)O(1),时间复杂度O(n)O(n)如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图...

2022-01-26 13:47:49 54

原创 每日一题- ​剑指 Offer 07. 重建二叉树​

目录描述思想:递归代码描述输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,null,15,7]示例 2:Input: preorder = [-1], inorder = [-1]Output: [-1]思想

2022-01-26 13:15:25 46

原创 java中一个抽象类中可以定义构造器吗

既然抽象类并不能实例化,那抽象类中的构造函数存在的意义是什么?抽象类必须被子类继承来实现。子类在调用父类时 无论自己有没有构造方法都会先去执行父类无参的函数。哪怕父类是抽象类。虽然抽象类不能被实例化,但是可以在构造方法中初始化一些参数;也可以在子类中调用父类的构造方法。...

2022-01-23 14:50:00 811

空空如也

空空如也

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

TA关注的人

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