自定义博客皮肤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)
  • 收藏
  • 关注

原创 登录注册静态网页实现(HTML,CSS)

总体来说还是很简单的,有很多有趣的小样式。

2024-10-08 22:29:57 1513

原创 199.二叉树的右视图(两种方法实现)

对于一个任意给定的二叉树,我们不能确定二叉树的形状;设计一个每次遍历二叉树的右子树的深度优先遍历,这样深度优先遍历中每层遍历到的第一个结点就是最右边的结点;

2024-09-13 23:35:47 270

原创 148.排序链表

要求时间复杂度为o(logn),可以使用归并排序。代码实现步骤如下:1.找到中间节点,因为是链表,所以用快慢指针的方法确定中间节点,即fast指针的速度是slow指针的二倍,当fast指针走到链表尾结点的时候,slow指针的位置的结点恰好为中间节点;2.将头结点到中间节点的链表;中间节点到尾结点的链表分别排序;3.将两个排序好的链表进行合并;只有一个结点或者头结点为空的时候直接返回头结点,无需排序。

2024-09-07 00:56:08 246

原创 LeetCode2.两数相加

由于输入的两个链表都是逆序存储数字的每一位,所以两个链表中同一个位置的数字可以直接相加,同时遍历两个链表,逐位计算两个结点的数值之和,同时当前两个结点的数值之和还要加上来自低位的进位(因为逆序存储,所以低位就是两个链表的当前节点的前一个结点相加产生的进位),即设两个结点的当前节点分别为n1和n2,前一位的进位为carry,当前的和为n1+n2+carry,对应答案链表应该放的值为(n1+n2+carry)mod 10,新的进位值为(n1+n2+carry) / 10。

2024-09-05 20:47:56 320

原创 二叉树的三个简单题

今天做了几个二叉树的基础题,思路都能明白,但是细节上总会丢三落四,导致代码死循环等等,做这三个简单题复习了一下二叉搜索树、二叉平衡树的概念以及二叉树的深度递归算法,总之很有收获!希望大家喜欢。

2024-08-27 23:35:43 331

原创 有关滑动窗口的四道题(模板题)

做了几个有关字符串的题,看了大佬的代码,如果题目要求在字符串中找出满足条件的子串有很多都是利用滑动窗口的思想来解决的,所以,利用四个例题做个笔记。

2024-08-26 22:45:18 1037

原创 字符流中第一个只出现一次的字符

在不断输入的字符流中找出第一个出现一次的字符

2024-08-26 08:35:16 247

原创 无重复字符的最长子串

定义一个数组,长度为128,保证每个字符都有对应的下标,将数组的元素的值设置为-1,设置左边界,遍历字符串中的字符,如果遍历到的当前字符已经遍历过,说明字符重复,调整左边界,用当前遍历到的字符串的下标减去左边界+1就是到当前位置的最长子串长度,遍历过程中的最长子串长度中的最大值就是答案。,请你找出其中不含有重复字符的最长子串的长度。请注意,你的答案必须是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。,所以其长度为 3。,所以其长度为 1。,所以其长度为 3。

2024-08-25 14:03:30 207

原创 从1到n整数中1出现的次数

当万位和千位为ab的时候,需要根据x的值进行判断,当x==0说明该位置在万位和千位为ab的时候不存在1的情况,当x==1需要根据cd的值进行判断,有00~cd种情况,当x>1的时候,说明x=1的时候cd位置可以取00~99,所以有100种情况。百位放1,求有多少种情况:_ _ 1 _ _,当百位放1的时候分为两种情况,第一种为万位和千位为00->11的时候,百位放1数字不大于12098,此时百位放1情况为12*100种情况,但是当万位和千位为12的时候,百位放1不成立。

2024-08-24 16:55:44 489

原创 数据流中的中位数

最好的办法是维护两个堆,分别为一个大顶堆和一个小顶堆,大顶堆存放比中位数小的数字,小顶堆存放比中位数大的数字,其中当数组元素为奇数的时候,大顶堆的元素个数与小顶堆的元素个数不相等,我们将多出的这个数字维护在大顶堆中,这样一来,当元素个数为奇数,直接返回大顶堆的堆顶元素,当元素个数为偶数的时候,返回大顶堆和小顶堆的顶部元素的和除以2。寻找数组中中位数的前提是数组有序,数组元素个数为奇数,中间的数字就是中位数;如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。

2024-08-24 08:31:42 410

原创 求数组中出现次数超过一半的数字

当count为0的时候说明第一个数字出现的次数到当前循环的位置时已经被其他数字抵消,说明第一个数字出现的次数并未过半。count为0,就重新假设一个数字为所求,循环结束的时候这个假设的数字就是出现次数大于数组半数的数字。那么遍历数组的时候,遇到第一个数字,就将中间变量count+1;数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。遇到不是第一个数字的数字就将中间变量count-1;假设数组非空,并且一定存在满足条件的数字。数组长度 [1,1000]。假设数组中的第一个数字为所求。

2024-08-23 20:17:08 311 1

原创 序列化二叉树

u用于记录当前遍历到的结点的首字符的位置;k用来记录当前遍历到的结点的尾字符的位置;将遍历到的字符转为对应数字,设置一个中间变量val,val=val * 10 + 当前遍历到的数字字符-‘0’,当首字符为n,说明当前需要构造空结点;当首字符为-,说明当前结点的值为负,需要将中间变量取负数;序列化二叉树:深度优先搜索遍历二叉树,当遇到空结点,在结果字符串的末尾加上null和空格;当遇到非空结点,将这个结点的值转为字符串,并在结果字符串的末尾加上null和空格。空格的作用是反序列化的时候分割字符串。

2024-08-22 21:54:09 351

原创 二叉树中和为某一值的路径

输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。保证树中结点值均不小于 0。

2024-07-02 00:11:11 202

原创 AcWing树的子结构和对称的二叉树(递归详解)

输入两棵二叉树 A,B判断 B 是不是 A 的子结构。我们规定空树不是任何树的子结构。

2024-06-14 22:04:30 175

原创 合并两个排序链表

输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。

2024-06-12 22:23:23 262

原创 链表中环的入口结点

给定一个链表,若其中包含环,则输出环的入口节点。若其中不包含环,则输出null。

2024-06-10 23:17:20 493

原创 表示数值的字符串

顺序执行 逐步判断这个指针的使用是真的很神奇。

2024-06-01 23:35:04 285

原创 删除链表中重复的值

又看视频又理解的,后来想一下,想明白了,!!!加油吧。

2024-05-29 22:36:26 296

原创 二进制中1的个数

将负数转为unsigned类型,在计算机中的二进制表示不变,但是是逻辑右移。最高位进行补0操作。

2024-05-29 13:08:17 348

原创 剪绳子(C++ 高数推导)

其实之前也有做过这个题,一直没去想为啥取3、2,那么多数字为啥选择你俩。今天看到推导,醍醐灌顶,就彻底懂了,高数真的是很神奇,第一次感觉到代码和数学有关系,有一个良好的数学思维真的很重要,自己压根想不到把它当做数学题解,这明明就是大一高数最简单的求极值问题啊。。。

2024-05-29 00:24:23 351 2

原创 矩阵中的路径

请设计一个函数,用来判断在一个矩阵中是否存在一条路径包含的字符按访问顺序连在一起恰好为给定字符串。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。注意:矩阵中元素的总个数 [0,900][0,900]。路径字符串的总长度 [1,900][1,900]。 二、思路以矩阵的每个元素为起点,开始搜索,如果能找到完整的str,说明true,否则false。搜索思路:用一个下标记录当前的str下标,

2024-05-27 22:32:14 432

原创 旋转数组的最小数字

参考大佬的代码,加上自己的理解。

2024-05-27 10:35:06 286

原创 用两个栈实现队列

其实封装成方法是好的,使代码逻辑更清晰。其实三者的思路都一样,就是把原栈pop,push到新栈,新栈就是原栈的队列形式。都一样啦。

2024-05-26 22:08:27 488

原创 分组背包问题

做这道题,体会到了01背包的思想可以解决很多问题,对于物品的属性可以对v、w数组加维度,在每个分组中,使用01背包思想,保证每组只选择一个性价比最高的物品,或者不选物品。代码是按照大佬代码写的,思路是自己总结的,大佬的图还是不太能理解,所以用自己的思想把解决这道题的思路讲了出来。

2024-05-22 22:37:14 334

原创 混合背包问题(java and c++)

这两个代码逻辑相同,明显感受到c++语言输入输出的方便性,但是对于c++语言没有java语言熟练。刚开始看大佬思路一头雾水,用我的DEVC++打了两遍思路逐渐清晰,就转化为java代码,大佬的代码属实妙不可言,评论区全是666。

2024-05-20 23:07:43 228

原创 重建二叉树

输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。

2024-02-09 00:56:19 170 1

原创 AcWing找出数组中重复的数字

给定一个长度为 n的整数数组nums,数组中所有的数字都在 0∼n−1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。:如果某些数字不在 0∼n−1 的范围内,或数组中不包含重复数字,则返回 -1;

2024-02-05 11:24:32 211 1

原创 快速排序算法模板(QuickSort)(分治思想)

快速排序算法是在递归的基础上对一个序列进行排序。

2024-02-03 15:05:26 264 1

原创 差分计数(HashMap)

给定a1,...,an和一个整数x,求有多少个序列对(i,j)满足a[i]-a[j]=x。

2024-01-31 20:41:13 280

原创 关于位运算的小笔记~

位运算是一个很快的运算,也很有意思,也很复杂。。。

2024-01-31 15:20:25 148

原创 结构体排序(练习题)

做题嘛,看到有意思的就做了,没有OJ环境啦,自己练着玩,写文章也是做笔记。

2024-01-31 00:36:28 368

原创 归并排序求小和问题

小和问题在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。例子:[1,3.4,2,5]1左边比1小的数,没有;3左边比3小的数,1:4左边比4小的数,1、3;2左边比2小的数,1;5左边比5小的数,1、3、4、2:所以小和为1+1+3+1+1+3+4+2=16。

2024-01-21 23:40:01 449 1

原创 DHT11+ESP32MCU上传温湿度数据到阿里云物联网平台

DHT11ESP32开发板数据线杜邦线。

2024-01-21 15:26:31 759 1

原创 蓝桥杯算法训练字符串表达式

编写一个字符串表达式求解函数int expression(char* s);输入一个字符串表达式,返回它的结果。表达式长度不会超过100。表达式最少有一项,且以等号=结束。表达式中只包含加法和减法,且运算均在整数范围之内。编写main函数测试该函数的正确性。3257。

2024-01-20 14:44:36 369

原创 算法训练字符串压缩

在字符串读入时一定要用nextLine()而不是next(),否则会导致字符串内容损失。

2024-01-19 12:24:38 536 1

原创 蓝桥杯算法训练P0805 大数乘法

为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法。具体来说,首先以字符串的形式输入两个整数,每个整数的长度不会超过10位,然后把它们相乘的结果存储在另一个字符串当中(长度不会超过20位),最后把这个字符串打印出来。例如,假设用户输入为:62773417和12345678,则输出结果为:774980393241726.以上代码好理解 但是这里并未排除两个相乘的大数过小的情况 也就是最终结果的数组前面为零的情况 导致最终输出结果出错。将结果的小部分相加(进位)得到的结果即为乘法的结果。

2024-01-19 11:05:21 514 1

原创 数据结构排序算法之归并排序(JAVA)

归并排序是建立在归并操作上的一种有效的排序算法,通过将有序的子序列合并,得到完全有序的序列。其中归并操作也称为归并算法,指的是将两个顺序序列合并成一个顺序序列的方法。

2024-01-18 22:52:44 403 1

原创 蓝桥杯练习系统算法训练——最大分解(java实现)

想做一道蓝桥题,又想学习一下贪心算法,就看到了这道题,感觉这是蓝桥练习系统中算法训练最简单的一道题了吧,算是贪心算法最简单的例题了(其他的题都读不懂),话不多说,记录一下自己的思路吧。

2023-11-09 20:21:52 129 1

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

闰年366天——被4整除不能被100整除或者能被400整除的年份。首先 去除整年 再去除整月 整日 最后输出此事件为新的一天的何时。平年365天——除了闰年以后的年份。

2023-10-13 23:19:12 214

原创 蓝桥杯--杨辉三角形【第十二届】【省赛】【研究生组】Java

【代码】蓝桥杯--杨辉三角形【第十二届】【省赛】【研究生组】Java。

2023-10-12 21:51:38 252

空空如也

空空如也

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

TA关注的人

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