自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 希尔排序 java

1.将n/2作为第一增量,然后将所有距离为n/2的元素分在同一组,并对每一组的元素进行直接插入排序。然后再取一个比第一增量小的整数作为第二增量,重复上述操作...对于增量的选定无一定论,但最后一个增量必须等于1,也就是说,每趟后一个增量是前一个增量的1/2。2.当增量的大小减到1时,就相当于整个序列被分到一组,进行一次直接插入排序,排序完成。

2022-11-27 21:09:18 206 1

原创 快速排序 java

此时,ref=5,i=1,j=11,从后往前找,第一个比5小的数是x8=2,因此序列为:2,3,7,6,4,1,0,5,9,10,8。此时,i=3,j=8,从第8位往前找,第一个比5小的数是x7=0,因此:2,3,0,6,4,1,5,7,9,10,8。此时,i=3,j=7,从第3位往后找,第一个比5大的数是x4=6,因此:2,3,0,5,4,1,6,7,9,10,8。此时,i=4,j=7,从第7位往前找,第一个比5小的数是x6=1,因此:2,3,0,1,4,5,6,7,9,10,8。

2022-11-26 21:41:45 149

原创 Leetcode 53. 最大子数组和 java

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。首先确定选取开头的数值不为0,之后在逐渐累加判断与之前的数值相比较,取较大的数值。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]解释:连续子数组 [4,-1,2,1] 的和最大,为 6。输入:nums = [5,4,-1,7,8]子数组 是数组中的一个连续部分。输入:nums = [1]

2022-11-25 20:30:34 184

原创 Leetcode 21. 合并两个有序链表 java

如何递归:我们判断 list1 和 list2 头结点哪个更小,然后较小结点的 next 指针指向其余结点的合并结果。将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]终止条件:当两个链表都为空时,表示我们对链表已合并完成。输入:l1 = [], l2 = [0]输入:l1 = [], l2 = []输出:[1,1,2,3,4,4]

2022-11-25 19:59:45 121

原创 力扣 100. 相同的树 java

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。输入:p = [1,2], q = [1,null,2]输入:p = [1,2,3], q = [1,2,3]输入:p = [1,2,1], q = [1,1,2]

2022-11-18 13:00:18 231

原创 LeetCode 70. 爬楼梯 Java

我们是从第 0 级开始爬的,所以从第 0级爬到第 0级我们可以看作只有一种方案,即 f(0) = 1;我们不妨写几项来验证一下,根据转移方程得到 f(2) = 2,f(3) = 3,f(4) = 5,……它意味着爬到第 xx级台阶的方案数是爬到第 x−1 级台阶的方案数和爬到第 x−2 级台阶的方案数的和。很好理解,因为每次只能爬 1级或 2级,所以 f(x) 只能从 f(x - 1) 和 f(x - 2) 转移过来,而这里要统计方案总数,我们就需要对这两项的贡献求和。1. 1 阶 + 1 阶。

2022-11-16 19:47:37 94

原创 LeetCode 116. 填充每个节点的下一个右侧节点指针 java

解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化的输出按层序遍历排列,同一层节点由 next 指针连接,'#' 标志着每一层的结束。2. 当前节点为右子树,那么将next指向他父亲的兄弟的儿子即可。给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。条件一:将当前节点的next指针,指向同辈分的右边那一棵子树。输入:root = [1,2,3,4,5,6,7]输出:[1,#,2,3,#,4,5,6,7,#]

2022-11-13 15:51:30 87

原创 LeetCode 136. 只出现一次的数字 java

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?输入: [4,1,2,1,2]输入: [2,2,1]

2022-11-13 15:24:31 96

原创 LeetCode 66. 加一 java

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。输入:digits = [4,3,2,1]输入:digits = [1,2,3]解释:输入数组表示数字 4321。解释:输入数组表示数字 123。输入:digits = [0]输出:[4,3,2,2]输出:[1,2,4]

2022-11-06 20:35:49 80

原创 LeetCode 67. 二进制求和 java

给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。输入:a = "1010", b = "1011"输入:a = "11", b = "1"输出:"10101"

2022-11-06 20:32:16 120

原创 Leetcode 58. 最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。输入:s = " fly me to the moon "输入:s = "luffy is still joyboy"单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。解释:最后一个单词是长度为6的“joyboy”。解释:最后一个单词是“World”,长度为5。解释:最后一个单词是“moon”,长度为4。输入:s = "Hello World"

2022-10-30 18:35:14 58

原创 LeetCode 20. 有效的括号 java

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。每个右括号都有一个对应的相同类型的左括号。左括号必须用相同类型的右括号闭合。输入:s = "()[]{}"左括号必须以正确的顺序闭合。输入:s = "()"输入:s = "(]"

2022-10-30 18:32:41 67

原创 反射(尚硅谷视频笔记)

同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,不论通过哪一种方式获取的Class对象都是同一个。需求:写一个"框架",不能改变该类的任何代码的前提下,可以帮我们创建任意类的对象,并且执行其中任意方法。1.Class.forName(“全类名"):将字节码文件加载进内存,返回class对象。3.对象.getclass0:getclass()方法在object类中定义着。1.将需要创建的对象的全类名和需要执行的方法定义在配置文件中。2.类名.class:通过类名的民性class获取。

2022-10-19 19:26:42 107

原创 力扣 14. 最长公共前缀 java

输入:strs = ["flower","flow","flight"]输入:strs = ["dog","racecar","car"]编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。strs[i] 仅由小写英文字母组成。解释:输入不存在公共前缀。

2022-10-18 21:01:35 189

原创 力扣 13. 罗马数字转整数 java

数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。s 仅含字符 ('I', 'V', 'X', 'L', 'C', 'D', 'M')X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。输入: s = "IV"

2022-10-18 20:38:14 197

原创 力扣 3 无重复字符的最长字符串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

2022-10-15 00:04:25 107

原创 力扣 35 搜索插入位置 java

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。

2022-10-13 21:47:29 230

原创 PAT 1023 组个最小数 java

给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。

2022-10-07 09:58:33 70

原创 PAT 1003 我要通过!java

”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“”大派送 —— 只要读入的字符串满足下列条件,系统就输出“”,否则输出“”。得到“PATxPATxxAaPbTcaPbATcaabcA现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“”的。

2022-10-07 09:15:34 61

原创 PAT 1017 A除以B java

本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。

2022-10-02 17:46:20 87

原创 PAT 1022 D进制的A+B java

输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1

2022-09-30 10:02:23 116

原创 PAT 1009 说反话 java

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

2022-09-20 08:09:17 80

原创 PAT 1004 成绩排名分数 java

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

2022-09-19 20:55:15 70

原创 力扣 27. 移除元素 java

例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。输入:nums = [0,1,2,2,3,0,4,2], val = 2。元素的顺序可以改变。输入:nums = [3,2,2,3], val = 3。输出:5, nums = [0,1,4,0,3]

2022-09-15 21:02:40 93

原创 力扣 9. 回文数 java

给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。解释:从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读, 为 01。因此它不是一个回文数。例如,121 是回文,而 123 不是。输入:x = -121。输入:x = 121。

2022-09-15 15:07:47 166

原创 力扣 1. 两数之和 java

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。

2022-09-06 08:22:09 209

原创 力扣 1582 二进制矩阵中的特殊位置 java

给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目。特殊位置 定义:如果 mat[i][j] == 1 并且第 i 行和第 j 列中的所有其他元素均为 0(行和列的下标均 从 0 开始 ),则位置 (i, j) 被称为特殊位置。

2022-09-06 08:11:43 48

原创 PAT 1043 输出PATest java

给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。

2022-09-04 22:01:57 57

原创 PAT 1081 java 检查密码

本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点.,还必须既有字母也有数字。

2022-09-02 17:13:10 61

原创 PAT 1076 Wifi密码 java

下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。!~”—— 老师们为了促进学生学习也是拼了…… 本题就要求你写程序把一系列题目的答案按照卷子上给出的对应关系翻译成 wifi 的密码。这里简单假设每道选择题都有 4 个选项,有且只有 1 个正确答案。

2022-08-20 15:46:15 93

原创 PAT 1071 小赌怡情 Java

常言道“小赌怡情”。这是一个很简单的小游戏:首先由计算机给出第一个整数;然后玩家下注赌第二个整数将会比第一个数大还是小;玩家下注 t 个筹码后,计算机给出第二个数。若玩家猜对了,则系统奖励玩家 t 个筹码;否则扣除玩家 t 个筹码。注意:玩家下注的筹码数不能超过自己帐户上拥有的筹码数。当玩家输光了全部筹码后,游戏就结束。...

2022-08-15 21:11:38 54

原创 PAT 1066 图像过滤 Java

图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。

2022-08-08 15:51:20 85

原创 PAT 1061 判断题Java

判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。

2022-08-08 13:37:27 70

原创 PAT 1056 组合数的和 java

给定N个非0的个位数字,用其中任意2个数字都可以组合成1个2位的数字。要求所有可能组合出来的2位数字的和。例如给定2、5、8,则可以组合出25、28、52、58、82、85,它们的和为330。

2022-08-02 12:50:48 85

原创 PAT 1051 复数乘法 java

复数可以写成(A+Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i2=−1;也可以写成极坐标下的指数形式(R×e(Pi)),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式R(cos(P)+isin(P))。现给定两个复数的R和P,要求输出两数乘积的常规形式。...

2022-08-02 11:36:30 63

原创 PAT 1041 考试座位号 java

每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。...

2022-07-20 18:37:06 90

原创 PAT 1046划拳 java

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。...

2022-07-20 13:46:19 87

原创 PAT 1036 跟奥巴马一起编程

美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的 50%(四舍五入取整)。...

2022-07-13 18:20:00 51

原创 PAT 1031 查验身份证

一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值;最后按照以下关系对应值与校验码的值:现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前1

2022-07-13 11:49:56 104

原创 PAT 1026 程序运行时间

要获得一个 C 语言程序的运行时间,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个时钟打点数 C1;在 f 执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数之差 ,再除以常数 CLK_TCK,就得到了以秒为单位的运行时间。......

2022-07-03 22:51:51 55

空空如也

空空如也

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

TA关注的人

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