自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树的前序 中序 后序遍历的代码实现

step 1 一路向左:压 1→压 2→压 4,cur=null,栈 [1,2,4]pop 5 → s2=[1,3,2,5]→ push 无 s1=[4]pop 4 → s2=[1,3,2,5,4]→ push 无 s1=[]step 2 弹 4,打印 4,cur=4.right=null。step 5 弹 5,打印 5,cur=5.right=null。step 3 弹 2,打印 2,cur=2.right=5。step 6 弹 1,打印 1,cur=1.right=3。

2025-11-18 18:07:36 331

原创 算法日记--被围绕的区域

思路:从外向内 遍历整个矩阵 从外向内 如果为'X'就先将其变为'#'(从外保证了边界上的'O'能被转换为'#') 由于最后的'O'没被全部包围 那么 最后依然是'O' 只需要将最后的'O'变为'X'(dfs)题意:将被'X'全部包围的'O'替换为'X'

2025-11-08 16:38:32 155

原创 算法日记--abb(传智杯)

将所有字符串用字符数组形式存储,然后遍历到当前字符,总和数组-1(算左侧),右侧为当前位置减去相同的字符,为不同字符的个数,最后左侧乘以右侧为总个数。遍历字符串,遍历当前的字符,找出前者与该字符不为相同的字符,找后者相同的字符。找出abb类型的字符,不需要为连续,不能重复,要唯一。暴力版本(超时,能过72.73%%)数组优化版本(空间换时间)

2025-11-07 10:28:10 197

原创 算法日记--画展布置(第十六届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组)

先排序,再算相邻平方差,最后滑动窗口找 m-1 个最小连续差值和。根据公式算出差分数组和前缀和数组,窗口区间长度为m-1。排序能保证相邻区间的元素和最小。

2025-11-07 10:15:59 127

原创 算法日记--电池分组(25年蓝桥杯省赛JavaB组)

数组被分成左右两部分 a[0..k-1] 和 a[k..n-1],且这两部分的异或和相等。枚举分割点,将所有切割点进行异或,分为两组,若找到,则输出“YES”将切割后的两组数组进行异或,若异或得到“YES”,则结束输出。

2025-10-27 22:17:47 204

原创 算法日记--下一个排列

3.反转 i 右侧的所有元素(保证字典序最小) 最初右侧大于左侧 交换位置后依旧大于左侧,保持字典序最小则需要反转位置 将最大的数放置最小位。1 1 nums[1] >= nums[2] → 1 >= 5 → 停止。从右往左找第一个“还能变大”的位置,换个稍大的数,再把后面调成最小。2.如果找到了 i,在右侧找比 nums[i] 大的最小元素并交换。步骤2:在 i 右侧找比 nums[i] 大的最小元素并交换。1 如果在某一位上 A 的数字比 B 大,则 A > B;

2025-10-26 09:33:52 288

原创 Java比较器(Comparable和Comparator)——自然排序和定制排序

接口定义:java.util.Comparator<T>核心方法:int compare(T o1, T o2)特点:外部实现,用于定义临时或特殊的排序规则,无需修改原类。可通过Collections.sort(List, Comparator)或List.sort(Comparator)使用。自然排序(Comparable)把比较逻辑写在类内部,一生只能有一种“默认性格”,排序时直接调用 Collections.sort(list) 即可;

2025-10-25 16:26:38 288

原创 算法日记--找到字符串中所有字母异位词

用两张长度 26 的计数器,一张当模板,一张当窗口;右指针每扩一个字母就更新窗口,一旦窗口长度达标就跟模板比对,相同就把左端点记入答案,再把左边界的字母踢出窗口继续滑。把即将被甩掉的字母 s.charAt(left) 对应槽 --,保证下次循环时 arrS 仍是“右扩左缩”后的最新状态。窗口右移一格,重复步骤 3,直到扫完整个 s。把新进窗口的字母 s.charAt(right) 对应槽 ++。全相等 ⇒ 当前窗口就是异位词,把起点 left 加入 ans。先把 p 的字母频次存成模板,以后不变。

2025-10-24 17:47:56 247

原创 算法日记--字母异位词分组

"nat","tan"]都由a t n这三个字母组成,["ate","eat","tea"]都由a e t这三个字母组成。a. 把 `str` 转成字符数组并调用 `Arrays.sort` 进行字典序排序,得到一个新的字符串 `key`。否则先新建一个空列表,把 `str` 放进去,再把 `"key->列表"` 这条记录写进 `map`。输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]排序后 key = "aet"排序后 key = "aet"

2025-10-24 15:57:58 475

原创 算法日记--和为K的子数组

当前前缀和 − k 在之前的某个位置出现过,则从那个位置到当前位置的子数组和就是 k,先给 0 出现 1 次,遍历看 sum-k 出现过几次,再把当前 sum 丢进表。sums[1] = 2,等于 k = 2 → count++ → count = 2。sums[0] = 1,不等于 k = 2,不增加 count。sums[2] = 3,不等于 k = 2,不增加 count。输入:nums = [1, 1, 1], k = 2。内层循环:无(j 从 3 开始,越界)思路三:哈希表优化前缀和。

2025-10-17 09:23:49 246

原创 算法日记--最长连续序列(Hash)

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。(用curNum当前起点来存储,用curLength当前长度来存储元素长度)当我们以num为起点时我们可以查找时候有num-1若有以num-1为启点。解释:最长数字连续序列是 [1, 2, 3, 4]。输入:nums = [0,3,7,2,5,8,4,6,0,1]输入:nums = [100,4,200,1,3,2]直到遍历完set,以set的每一个元素为起点。输入:nums = [1,0,1,2]

2025-10-15 21:14:04 207

原创 VMware虚拟机网络有线线缆已拔出

右击此电脑->管理->服务与应用程序->服务找到VMware DHCP Service和VMware NAT Service保证服务启动右击网络未连接的虚拟机找到设置找到网络适配器将网络连接设置为NAT模式重新启动虚拟机 发现网络已连接

2025-10-12 12:13:28 156

原创 用Finalshell连接CentOS 7操作系统

在VMware中打开CentOS-7操作系统。点击左上角类似于文件夹的图表。右击空白处,打开终端。输入ifconfig。

2025-10-12 12:04:00 215

原创 算法日记--无重复字符的最长子串(滑动窗口)

用HashMap<Character, Integer>来存储字符串的单个字符以及出现时对应的最近一次出现的位置当遇到重复字符时,收缩左边界到重复字符的下一个位置。请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。输入: s = "abcabcbb"输入: s = "pwwkew"

2025-09-28 22:24:22 291

原创 解决通过idea移除maven该模块后依旧存在的问题

新建maven模块发现tlias-pojo依据存在。打开该目录所在文件夹,删除tlias-pojo。删除tlias-pojo模块。删除后就可以新建同名模块了。

2025-06-03 17:03:07 238

空空如也

空空如也

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

TA关注的人

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