自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯刷题——day9

首先,我们进行变量的定义,n:表示要进行的乘法次数。然后定义一个函数mul(),这个函数用于将存储在数组a中的数字乘以2,并处理进位。在完成n次操作后,判断小数点前面一个数子的大小(我们在删除小数点时记录了位置),如果大于5就进一,小于5就舍去小数点后面的数字,最后,程序输出乘法后的结果(反转后的结果),问题解决。今年是2021年,2021这个数字非常特殊, 它的千位和十位相等, 个位比百位大11,我们称满足这样条件的年份为特殊年份。对于一个大于0的浮点数d,可以用R格式的整数来表示。×d的四舍五入结果。

2024-12-22 13:11:57 1273

原创 蓝桥杯刷题——day8

首先我们创建一个新的类Plane,这个类记录了飞机到达时间T,飞机最多可以盘旋的时间D,以及飞机降落所需的时间T,然后创建一个ArrayList,用ArrayList依次接受我们输入的Plane,然后将ArrayList进行排序,排序的准则是先处理最“紧急”的飞机,即最晚开始降落时间 T + D 较早的飞机,能尽量确保这些紧急飞机降落成功。然后创建一个变量:currentTime,这个变量表示:记录跑道的当前空闲时间,也就是当前跑道可以开始接纳下一架飞机的时间。)上的数字是偶数,我们就称之为“好数”。

2024-12-20 12:11:02 1172

原创 蓝桥杯刷题——day7

这条题目相对来说比较简单,我们在练习for语句循环的时候经常会拿打印乘法口诀表来练手,因此这里注重介绍一下进制转化的问题,例如:对于123456这个数我们如何能一个数一个数的拿出来呢?我们是不是先对123456进行10取余,拿出来6,然后用123456÷10得到12345,然后再用12345对10取余,然后拿出来5,以此类推,进制转化也是这样的,只是把这里的10换成了你想进制转换的进制数而已,但是需要注意的是我们拿的过程中是6,5,4,3,2,1。输入一个整数P,输出P进制下的乘法表。

2024-12-18 18:03:12 1365

原创 蓝桥杯刷题——day6

这两种情况与上面的结果是一模一样的所以我们就不在赘述,因为这些状态转移方程是一摸一样的,我们就可以进行合并,这也是为什么求状态转移方程时,我们会在前面加上一个自身,例如dp[i+1][j] = dp[i+1][j] + dp[i][j] × j ,这个状态转移方程中我们是dp[i+1][j] = dp[i+1][j] + dp[i][j] × j,而不是dp[i+1][j] = dp[i][j] × j,就是这个原因。对于一个1∼n 的排列,如果可以将这个排列中包含t个折点,则它称为一个t+1 单调排列。

2024-12-16 19:21:29 1840 1

原创 蓝桥杯刷题——day5

check_ABAB函数是用于判断日期是否是ABABBABA的日期,我们知道如果是ABABBABA那么一定是回文,因此我们只需要判断第一个数跟第三个数是否一样,并且第二个数跟第四个数是否一样,并且第一个数跟第二个数不能一样(因为第一个数跟第二个数一样了,就变成了AAAAAAAA),有细心的同学会问哪个flag的目的是什么?月只能是1到12,而日的合法性更多,日根据月来定,比如一月是31天,四月是30天,并且还要判断闰年,因为闰年2月才是29天。

2024-12-15 23:32:31 2356 1

原创 蓝桥杯刷题——day4

前10个被报出的数是:20,24,40,48,60,72,80,96,100,120。这道题目关键是如何找出一个最小子串,该最小子串能够实现数组中的最大公约数为 1,什么意思?如果我们把一个子串中的一个元素变为了1,那么我们就可以根据这个1把数组的其他元素都变成1,什么意思?给定一个数组,每次操作可以选择数组中任意两个相邻的元素x,y 并将其中的一个元素替换为gcd(x,y),其中gcd(x,y) 表示x 和y 的最大公约数。本题的结果为一个整数,在提交答案时只输出这个整数,填写多余的内容将无法得分。

2024-12-14 14:24:48 1128

原创 蓝桥杯刷题——day3

不过,每块石头有一个高度,每次小青蛙从一块石头起跳,这块石头的高度就会下降1,当石头的高度下降到0时小青蛙不能再跳到这块石头上(某次跳跃后使石头高度下降到0 是允许的)。这道题目挺有意思的,其实不难,输入部分我们就不过多介绍,我们可以创建一个Arraylist用作存储,没输入一个数字,就将数字存储到Arraylist中去,然后用排序,将Arraylist从小到大进行排序,从后往前遍历,当发现两个数字相等的时候则该数字就是重复的ID,当发现两个数字相差大于1的时候就发现该数字为丢失的数字。

2024-12-13 21:02:40 1126

原创 蓝桥杯刷题——day2

有的同学要问了,怎么感觉不对劲呀,这个1000000007是个什么玩意,这个当然是题目的要求,因为我们在计算到后面的时候数字会越来越大,因此很可能超出int的范围,因此我们需要对结果进行取余,而题目的要求是对1000000007取余,那么满足他题目的要求就可以了,还有一个问题:(list.get(i-1) + list.get(i-2)) % 1000000007,这个是为什么?

2024-12-12 20:44:30 1061

原创 蓝桥杯刷题——day1

这条题目是一个基础题,我们可以设置两个指针,left和right,分别指向字符串的起点和终点,两指针同时向中间运动,如果left指向的不是字符或者数字,那么left++,如果right指向的不是字符或者数字,那么right–,如果两者指向的是字符或者数字那么进一步判断,如果两者指向的字符相同,那么left++,并且right–;输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

2024-12-11 20:21:11 1324

原创 树形结构(4)(Java语言)——二叉树(3)

树形结构(4)(Java语言)——二叉树(3)二叉树相关的OJ题检查两棵树是否相同题目代码解题思路三级目录二叉树相关的OJ题检查两棵树是否相同题目给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入:p = [1,2,3], q = [1,2,3]输出:true示例2:输入:p = [1,2], q = [1,null,2]输出:false示例3:输入:p = [1,2

2024-12-11 17:47:54 1461 1

原创 精选算法入门——day10

这个也属于是老朋友了,我们的第一印象是把字符串的第一个数字记录下来,然后把后面的所有的都往前移动一个,再把刚记录的放在最后一个位置,那么左移1位就完成了,之后我们再用for循环,左移K位,就循环K次,这种方法当然可以解决,但是有一个问题,就比如说字符串:“XYZdefabc”,如果要循环左移1000次,那么我们是不是就真的循环1000次呢?我们可以看到栈为空,那么遍历完成,lists就是我们需要的结果集,其实理解起来还是比较抽象的,同学们可以对照着代码以及图片自己理解一下,当然更有效的方法是自己做一遍。

2024-12-09 18:30:04 960

原创 精选算法入门——day9

分成两个组后,再用上面只有一个数字出现一次的问题就可以解决了。这条题目挺有意思的,其实简单来说就是在1-100之间求出一组连续的数字等于S,正常的想法是先从两个数开始([1,2]到[99,100]),看看有没有等于S的区间,有就保存起来,然后再到三个数([1,3]到[98,100]),以此类推一直到100个数([1,100]),但是这样做造成的时间复杂度会非常的大,我们能否换一种方法呢?此时区间为[2,4],区间和为9,等于S(9),将此区间的数值记录下来,并且left向右移动一个格子,依次类推。

2024-12-06 12:47:27 823

原创 精选算法入门——day8

我们先看这个例子:{3,32,321}。我们曾经都写过这样一个代码,判断一个字符串是否是回串文,这个问题是判断是否是回串文的一种变体,有题目可知,可能只有一个位置导致字符串不是回串文,因此我们可以定义首尾指针,从两端开始向中间判断,如果首尾相遇都相同则证明就是回串文,那么打印-1,如果发现首尾不相等了,那么证明不是首出问题,就是尾出问题,那么我们只需要删除首指针,如果删除首指针后发现,字符串变成了回串文,那么就打印首指针的位置,如果还不是回串文,就打印尾指针的位置(题目给的条件是总会有一个合法的解)。

2024-11-29 15:47:03 805

原创 精选算法入门——day7

是为了去重用的,为什么需要,我们知道java的字符串类型(String)是不可以发生改变的,只要创建了就不可以在改变了,因此再交换的过程中,我先进行了String转化为StringBuffer 然后再把StringBuffer给了String,这就导致,我的String产生了永久性的改变,而我希望的是进入递归时只对我本层递归的String发生改变,因此我的list中会多出重复的答案,所以我需要添加这么一步操作。给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。

2024-11-25 16:31:23 557

原创 精选算法入门——day6

首先我们定义两个数组,这两个数组一个是所有符合要求的路径(result),也就是说他是存放数组的数组,另一个是待考察的路径,他存放的是数字,如果符合要求就将他放入result,不符合要求就不放入,首先我们遍历根节点1,我们将1放入list中,我们的路径长度是7,那么我们用7减去1,也就得到了剩下的路径6,我们进行判断,1的左子树和右子树是否为空并且路径长度是否为0(因为路径的末尾肯定是叶子节点,所以左右子树必须为空),我们发现左右子树不为空,并且路径长度也不为0(剩余路径长度为6),接着遍历1的左子树。

2024-11-18 15:09:10 989

原创 精选算法入门——day5

这样一来,4就是第一个出栈的了,下一个出栈的是5,我们可以看到,栈中4出去后,栈顶是3,那么跟出栈的序列不一样,因此需要接着放入元素5(pushV中,前四个元素都放入了,接着后面放入5),这时候,栈中的栈顶5与出栈的5相等,那么出栈5。前面步骤一样,由于第一个出栈的数字是4,那么按照顺序将1,2,3,4放入栈中,弹出4,此时我们发现栈顶(3)与出栈序列中的3一样,那么也弹出。从图中我们可以看到,popV的第一个数字是4,也就是说出栈的第一个是4,那么也就是1,2,3,4都按照顺序入栈。

2024-10-30 14:08:31 985

原创 精选算法入门——day4

在第一次比较当中,我们把1放到了新的链表当中,并且pHead1往后移动了一个位置,此时我们观察到问题就变为了{3,5,7}与{2,4,6,8}进行数组合并其他的步骤一摸一样,因此我们又联想到了另一个解题思路,那就是递归,递归的出口就是pHead1或者pHead2为空的时候。首先,我们从A这棵树的起始位置开始判断,我们发现1≠2,那么遍历下一个节点,我们发现2=2,那么这时候从A的2这个节点开始判断,是否与B是同一棵树,如果是则返回true,如果不是,接着往下一个节点判断,直到A这棵树遍历完全。

2024-10-16 12:15:03 918

原创 精选算法入门——day3

我们可以想象一下,当我们记不住事的时候,我们怎么办?这个好像还是斐波那契数列,那么我们再看他的初始情况,当n=1时,f(n)=1,当n=2时,f(n)=2,由此问题解决,具体的代码部分也不再详细写出来了。但是需要注意的是循环的次数,如果n=3,就循环一次,n=4,就循环两次,因此我们可以设置while(n>2),当然我们还有一个问题,我们的返回值肯定是third这个毋庸置疑,但是我们也要考虑n=1和n=2的情况,我们直到n=1和n=2,返回值都应该是1,那么我们可以将third初始化为1。

2024-10-11 22:28:47 1225

原创 精选算法入门——day2

,直到两个指针完成遍历。这个题目我就不在画图了,直接上代码。

2024-10-06 18:30:53 1083

原创 精选算法入门——day1

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。数组样式如下:1 2 3 42 3 4 53 4 5 6。

2024-10-01 20:20:12 1141 1

原创 函数栈帧的创建和销毁(C语言)

函数栈帧的创建和销毁(C语言)

2023-02-12 22:41:25 833 2

原创 树形结构(3)(Java语言)——二叉树(2)

树形结构(3)(Java语言)——二叉树(2)

2022-02-08 15:36:51 1209 11

原创 树形结构(2)(Java语言)——二叉树(1)

二叉树(1)

2022-02-07 13:41:53 1713 16

原创 树形结构(1)(Java语言)——树的基本概念

树的基本概念前言树形结构树的概念树的特点树的其他概念(重要)树的表现形式树的应用前言前面的学习中,我们了解了顺序表,栈,队列等。这些都属于线性结构,就像一根线一样串起来,而接下来我们要学习高阶的数据结构。首先我们接触的是树,由于树的知识相对较多,我们分成几篇博客进行介绍。树形结构树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树的特点树具有以下的特点:有一个特殊的结点

2022-01-24 15:43:58 4236 3

原创 Queue与队列(Java语言)

Queue与队列(Java语言)

2022-01-23 22:14:05 1027 9

原创 Stack与栈(Java语言)

Stack与栈(Java语言)

2022-01-22 22:28:47 694 13

原创 VS编译器常见的问题

VS编译器常见的问题VS2013控制台一闪而过三级目录scanf函数报错新建多个源文件出错

2022-01-12 12:51:52 4814 14

原创 ArrayList与顺序表(Java语言)

ArrayList顺序表,泛型,包装类

2022-01-10 14:40:25 1645 14

原创 认识异常(Java语言)

认识异常(Java语言)

2022-01-05 00:32:23 444 13

原创 字符串String类(Java语言)

字符串String类(Java语言)

2022-01-03 23:20:18 895 8

原创 图书管理系统(Java语言)

图书管理系统(Java语言)

2022-01-01 21:35:53 2281 5

原创 每日一题(9)——数据结构(LeetCode)

每日一题(9)——数据结构(LeetCode)题目代码题目解析题目给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例1:输入: [1,2,3,1]输出: true示例2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true代码代码1:public boolean containsDuplicate(int

2021-12-14 10:58:11 984 7

原创 每日一题(8)——数据结构(LeetCode)

每日一题(8)——数据结构(LeetCode)题目代码题目解析题目给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例2:输入:head = [0]输出:0示例3:输入:head = [1]输出:1示例4:输入:head = [1,0,0,1,0,0,1,1,

2021-12-13 18:08:28 528 1

原创 每日一题(7)——数据结构(LeetCode)

每日一题(7)——数据结构(LeetCode)题目代码解题思路题目给你单链表的头指针head和两个整数left和right,其中left<=right。请你反转从位置left到位置right的链表节点,返回反转后的链表。示例1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]示例2:输入:head = [5], left = 1, right = 1输出:[5]代码public ListNode revers

2021-12-12 12:12:39 520 2

原创 面向对象编程(Java语言)

面向对象编程(Java语言)前言包导入包中的类静态导入将类放到包中包的访问权限控制常见的系统包继承前言这篇博客的目的就是帮助我们进入面向对象编程的核心部分,是非常重要的语法部分。我们常常将面向对象这种编程思想挂在嘴边,却不知道到底什么是面向对象,希望这篇博客能够给你帮助。包包 (package) 是组织类的一种方式。使用包的主要目的是保证类的唯一性。什么意思呢?例如, 你在代码中写了一个 Test 类. 然后你的同事也可能写一个 Test 类. 如果出现两个同名的类, 就会冲突, 导致代码不能编译通

2021-12-11 20:01:45 1092 1

原创 每日一题(6)——数据结构(LeetCode)

每日一题(6)——数据结构(LeetCode)题目代码解题思路题目给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例2:输入:head = [0,1,2], k = 4输出:[2,0,1]代码代码1: public ListNode rotateRight(ListNode head, int k) { if (head ==

2021-12-11 14:11:48 459

原创 每日一题(5)——数据结构(LeetCode)

每日一题(5)——数据结构(LeetCode)题目代码题目解析题目给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例2:输入:head = []输出:[]示例3:输入:head = [1]输出:[1]代码public ListNode swapPairs(ListNode head) { if (h

2021-12-10 12:40:14 589 1

原创 每日一题(4)——数据结构(LeetCode)

每日一题(4)——数据结构(LeetCode)题目代码题目解析题目给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例2:输入:head = [1], n = 1输出:[ ]示例3:输入:head = [1,2], n = 1输出:[1]代码解法1: public ListNode removeNthFromEnd(ListNode head, int n

2021-12-09 12:03:29 540 3

原创 每日一题(3)——数据结构(LeetCode)

每日一题(3)——数据结构(LeetCode)题目代码题目解析题目给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储 一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。示例1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807示例2:输入:l1 = [0], l2 = [0]输出:[0]示例3:输入:l1 = [9,9,9,9,9,9,9], l2 =

2021-12-08 11:27:29 577

原创 每日一题(2)——数据结构(LeetCode)

LeetCode每日一题(2)——数据结构题目代码题目解析题目请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。题目数据保证需要删除的节点 不是末尾节点 。示例1:输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:指定链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9示例2:输入:head = [4,5,1

2021-12-07 11:06:30 291 1

空空如也

空空如也

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

TA关注的人

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