- 博客(171)
- 资源 (5)
- 收藏
- 关注
原创 【算法】最长连续递增序列 - 贪心算法
从第一个元素开始遍历,当遍历到当前元素不再递增时,计算当前长度,并与之前记录的最大值比较,取到最终的最大值。给定一个数组,要求从数组中找到最长的连续递增的序列。
2024-04-08 20:41:31 442
原创 【算法】二叉树最小深度 - 深度优先/广度优先
从根节点遍历所有叶子结点,找到最少的节点数。创建一个队列,将根节点及其深度放入队列,取出后判断其左右节点,如果为null返回深度,否则将左右节点放入队列,深度为上一节点深度 +1,以此类推。先找到所有的叶子节点,然后从叶子节点数到根节点,找到最少的节点数。给定一个二叉树,求最小深度(根节点到叶子结点最少的节点数)。
2024-04-08 19:57:37 239
原创 【算法】子数组最大平均数 - 滑动窗口
先选中开头的 n 个数字,计算出和并记录,然后后移窗口(减去最前面的数再加上后面的一个数),计算出新的和,取最大的和,最后计算平均数并返回。给定一个数组和一个数字 n ,在数组中找到连续的 n 个平均数最大的数字。
2024-04-08 18:51:46 152
原创 【算法】合并两个有序数组 - 双指针
定义三个指针,分别指向 nums1 的最大元素(p1)、nums2 的最大元素(p2)、nums1 的最后一个元素(空位)§。依次对比 p1 和 p2 的大小,大的放到 p 的位置,前移已经移动的指针和 p 指针即可。两个有序整数数组 nums1 和 nums2 及他们的元素个数 m、n,将 nums2 合并到 nums1 中,结果依然有序。nums1 长度默认为 m + n,没有元素的位置用 0 补齐。
2024-04-07 13:13:24 394
原创 【算法】环形链表 - 遍历/双指针
声明一个快指针和一个慢指针,快指针每次移动两步,慢指针移动一步,如果两指针相等则说明有环。声明一个Set,遍历链表放入Set,如果放入失败,说明有环。给定一个链表,判断链表中是否有环,并返回结果。
2024-04-07 11:30:50 398
原创 【算法】排硬币 - 二分法/牛顿迭代
定义一个指针 low = 0,和一个指针 high = 1,每次迭代将 low + high 赋值给 high,将原来的 high 赋值给 low,从2开始遍历到n即得出结果。使用递归的方式计算出结果,但使用一个数组保存已经计算出来的值,防止重复计算,提高性能。每个数等于前面两个数相加,第n位等于第(n - 1)位加上第(n - 2)位。斐波那契数列:0 1 1 2 3 5 8 13 ……给定n,求斐波那契数列第n位的数值。
2024-04-06 21:24:06 218
原创 【算法】斐波那契数列第n位 - 去重递归/双指针迭代
定义一个指针 low = 0,和一个指针 high = 1,每次迭代将 low + high 赋值给 high,将原来的 high 赋值给 low,从2开始遍历到n即得出结果。使用递归的方式计算出结果,但使用一个数组保存已经计算出来的值,防止重复计算,提高性能。每个数等于前面两个数相加,第n位等于第(n - 1)位加上第(n - 2)位。斐波那契数列:0 1 1 2 3 5 8 13 ……给定n,求斐波那契数列第n位的数值。
2024-04-06 19:53:19 160
原创 【算法】有序数组的两数之和 - 二分法/双指针
初始化两个指针,一个指向下标0,另一个指向最后一个数,让两个数相加,如果大于给定数,则右指针左移,否则左指针右移,直到找到和等于给定数的两个值,返回下标即可。以第一个数为基准数,采用二分法寻找数组中与之相加等于给定数的数字,找到则返回下标,否则以第二个数为基准数,以此类推。在一个有序数组中找到两个数,两个数之和为给定的一个数,返回两个数在数组中的下标。
2024-04-06 19:00:15 190
原创 【算法】无序数组的两数之和 - map标记
遍历数组,遍历到一个数字的时候,记录下这个数及其下标,遍历时判断给定数减去这个数为key在map中是否存在,存在则返回两个下标,否则将数和下标放入map即可。在一个无序数组中找到两个数,两个数之和为给定的一个数,返回两个数在数组中的下标。
2024-04-06 18:40:37 410
原创 【算法】求一个数组中三个数乘积最大值 - 线性扫描
一个数组中最大值只有两种情况:两个最小的负数和一个最大的正数 & 三个最大的正数。线性扫描找出这五个数字,即可求出最大值。给定一个数组,找出数组中乘积最大的三个数。
2024-04-06 17:21:44 280
原创 【算法】求平方根 - 二分法/牛顿迭代
比如求12的平方根,2 * 6 = 12,那么 (2 + 6) / 2的值就会更趋近于平方根。求num的平方根,则是求 num / x 和 x 的均值,这个值会越来越趋近于真正的平方根。遍历每次取中间数,大了就往小取,小了就往大取,直到取到正确的值。求一个数的平方根,要求返回小于等于平方根的正整数。
2024-04-05 16:44:49 265
原创 【算法】寻找数组中心下标 - 双指针/求总和
遍历数组,当 sum * 2 + 当前元素 = arraySum时,当前元素即为中心元素,不想等则让 sum 加上当前元素。遍历数组,每次遍历先让 leftSum + 当前元素,此时两个Sum都包含当前元素,如果两个Sum相等,则当前元素为中心元素;定义两个变量,一个为从左侧累加的和 leftSum = 0,一个从右侧递减的和 rightSum,rightSum初始值为整个数组的和。给定一个非空数组,找到一个元素,该元素左侧元素和等于其右侧元素和,返回该元素下标。
2024-04-05 10:50:23 164
原创 【算法】删除数组中的重复元素 - 双指针
定义一个快指针 j 和一个慢指针 i,慢指针从下标0开始,快指针从下标1开始,遍历数组。如果两个下标对应的数不相等, 则后移 i,并将j的元素赋值到 i,然后后移 j。如果相等,则只后移 j。这样等 j 遍历完数组后,不重复的元素正好排到 i 的位置。由于题目要求返回长度,所以返回 i+1 即可。给定一个有序数组,要求删除数组中的重复元素,不允许创建新数组,返回删除重复元素后的数组长度。
2024-04-04 11:47:58 211
原创 【算法】统计素数个数 - 埃筛法
素数只能被1和它本身整除,所以小的数能够通过乘法计算出来的数都不是素数。埃筛法就是不断地用小的数做乘法标记出哪些数不是素数,从而减少遍历次数。
2024-04-04 11:26:58 163
原创 【算法】字符串查询KMP算法代码实现
主要原理是,先在子串中找到所有重复的更小子串,并在重复的后面的子串的最后一位的下标记录子串长度。当与主串匹配出现不一致时,后移失配的前一个下标对应步长,然后继续进行匹配。不回溯主串,通过计算步长后移子串的方式快速查找字符串,将时间复杂度控制到O(n)。
2024-04-02 18:54:24 351
原创 MySQL事务隔离级别及MVCC详解
C事务读id为1的数据,由于是可重复读隔离级别,所以不再生成新的ReadView,还是用之前的,m_ids=[100, 200],min_trx_id=100, max_trx_id=201,creator_trx_id=0。C事务读id为1的数据,再次生成ReadView,m_ids=[200],min_trx_id=200,max_trx_id=201,creator_trx_id=0。ReadView中有m_ids、min_trx_id、max_trx_id、creator_trx_id。
2024-03-19 21:34:24 932
原创 MyBatis联表查询时,主查询表的字段怎么统一加别名(通用方案)
但是每次写一个联表查询SQL都需要这样来一次,维护起来就比较困难了。一般来说,MyBatis生成的xml sql文件中,会有一个。,方便查询时直接引用。
2023-08-28 18:09:13 2742
原创 小米手机怎么查看电池剩余容量、健康百分比
8、计算剩余容量百分比,就很简单了,用剩余容量除以电池的额定容量就好了。3、等待bug报告生成完毕,然后点击就可以进入报告所在目录。如果返回了也没关系,报告在。这个值,这个就是当前电池的估计剩余容量,我这个电池显示3380mAh,已经掉了很多了。4、这时候可以在手机解压查看也可以弄到电脑上解压查看。为了便于操作我选择弄到电脑上。我这里少输了一个*,因为再输入一个*就跳转走了。我们不需要关注太多,只需要看。1、首先打开拨号界面,输入。7、打开该文件,搜索。
2023-07-21 16:02:43 9837 5
原创 使用JOIN查询数据重复,怎么办?使用count统计怎么写SQL?
如果要用count统计数据,直接按最开始的写法也会统计多出来,而且此时distinct和group by也不好用了。distinct直接没效果,group by则变成了按tbl_a的id分别统计个数。
2023-07-20 11:35:12 458
原创 使用JSON.toJSONString时,出现“$ref”怎么办?服务器返回对象显示$ref怎么解决?
【代码】使用JSON.toJSONString时,出现“$ref”怎么办?服务器返回对象显示$ref怎么解决?
2023-06-29 10:35:49 1367
原创 mac如何删除自带的ABC输入法,最简单的方案
值为“ABC”(我的已经删了,就不贴图了),将该数字选中,点击上面的Delete,删除掉;4、依次打开数字,其中有一个数字下面的。5、按Ctrl + S进行保存即可。版本:13.2.1 (22D68),自行搜索下载、安装;
2023-06-09 11:08:58 2263 3
转载 mac使用技巧
想保存软件图标图片 你可以在「应用程序」文件夹中找到这个软件 然后双指点按选择「显示包内容」 「Contents」-「Resources」 里面一般都会有一个叫「AppIcon.icns」的文件 双击用「预览」打开它 然后双指点按左侧缩略图,选择「导出为」 选择格式保存就可以了 如果想要透明底的图片 就选择 PNG 格式。在大多数程序中,如果你想要一份详细的程序快捷键清单,那么你可以点击 Leopard 的 help 菜单,在搜索框输入:shortcuts,然后这个程序的所有快捷键就会展示给你,很酷吧。
2023-03-20 11:56:27 1011 1
原创 mac使用sublime text怎么把其他符号替换为制表符、换行符
这时候要在Replace框中输入制表符,直接按Tab键会直接跳到Find框,输入\t会直接把“.”替换为“\t”。在文本处理中,经常需要用到查找替换功能,有时候要把文本复制到Excel中,这时候就要批量加入制表符,省去在Excel中的复杂处理。
2023-02-28 17:34:24 3826
原创 mac使用sublime text卡顿解决方法,附常用快捷键
在mac上使用sublime text总是卡顿,比如选中一段文字复制,然后去干别的,等会回来点击空白处取消对文字的选择,点好多下都取消不了。再比如修改tab格式也是改着改着就卡住了。
2023-02-28 17:18:20 1558
原创 横向的Excel输出为pdf自动分成两页怎么办?不分页,铺满整张纸的方法来了
我们工作中有时候会需要把Excel转换成pdf,一般我们用WPS的“输出为pdf”功能就可以转了。但是有些横向的Excel转换的时候,会自动分成两页,这并不是我们想要的效果。怎么才能不分成两页呢?首先我们有一个Excel:使用“输出为pdf”功能,输出效果如下:这肯定不是我们想要的效果。
2022-12-01 21:36:05 15441
原创 nt6hddinstallerv2.8.1系统安装工具下载
由于后来的新版本,在windows10系统下无法正常使用,所以保存了2.8.1的版本,这个版本在windows10是可以正常使用的。nt6 hdd installer v2.8.1,是一款无需使用U盘即可安装系统的系统安装工具,通常用于双系统、多系统的安装。相关下载链接:https://download.csdn.net/download/qq_34972627/87069519。
2022-11-18 13:09:29 4242 1
原创 小程序返回页面报错:navigateBack:fail cannot navigate back at first page.
调试小程序的时候,从主页跳转到了另一个页面,在另一个页面的bindtap事件绑定的函数中,调用了。相当于重定向,不算是从上一个页面跳转过来的,所以把跳转后的页面当做了第一个页面。看字面意思也很简单,说的是现在这个页面已经是第一个页面了,没办法再返回了。这个错误原因其实也简单,就是在跳转的时候使用了。这样跳转之后,点击返回就可以成功返回上一页了。
2022-10-27 15:39:55 4463
原创 在mac(m1)上启动mybatis-generator-gui报错及修复
找遍了网络,有说引入一个依赖的,还有就是说非官方的jdk可能返回的os.name和os.arch不太一样,不一样的话要么换jdk,要么想办法修改这两个参数。然后就打开了zulu官网,发现官网的zulu有带javaFX的版本。直接下载了一个jdk8带javaFX的版本,安装了。然后就开始找javaFX的maven依赖,引入之后,代码是不报红了,fxml文件也正常了。换了mac之后,装了zulu的jdk,当时是朋友发给我的,就直接安装了。这就尴尬了,包都引入了但是却不能用。启动,不报错了,第二个问题也解决了。
2022-10-20 18:26:10 715 2
原创 mac电脑升级Monterey12.1版之后L2TP连接公司内网后无法正常访问的问题解决
公司内网设置:L2TP,无共享密钥。mac版本:版本12.6。
2022-09-26 14:49:25 11578 6
原创 mac的终端显示分支名称?mac的终端和idea中的terminal同时修改
想在使用git的时候能随时看到分支的变化,之前用windows,git bash直接能看到。mac中的终端展示不出来,所以需要搞一搞,以便于使用。在网上找了好多都不能用(应该是zsh的问题)。当前使用mac为m2的cpu,系统版本12.5.1。2、打开刚刚创建的文件,将下面的脚本复制进去:3、打开家目录下的文件,如果没有就创建一个,然后把下面的参数复制进去:4、执行下面命令:大功告成,这时候再进入项目目录下,就能看到项目当前分支了。IDEA里面的terminal需要重启一下才会有。
2022-08-22 15:30:03 507
nt6hddinstallerv2.8.1系统安装工具下载
2022-11-18
地图文件夹迷宫(适用于windows系统)
2022-07-20
Windows系统自带程序集合
2022-07-20
Java8的LocalDateTime工具类,包含一些比较常用的功能。
2022-07-06
CSDN备份工具,可用于备份CSDN文章,防止丢失
2022-06-02
Java校验参数工具类
2022-06-02
macbook的idea项目debug时,touchbar不出现debug功能
2022-09-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人