logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

力扣 hot100 字母异位词分组 Java 哈希 题解

摘要:本文提出了一种将字母异位词分组的方法。算法使用哈希表存储分组,其中键为字符串的字母计数数组转换成的字符串,值为对应的异位词列表。遍历输入字符串数组时,对每个字符串统计字母出现次数,生成特征字符串作为哈希键,将相同特征的字符串归入同一列表。该方法时间复杂度为O(nk),其中n是字符串数量,k是字符串最大长度。示例代码展示了如何实现这一分组过程,最终返回哈希表中所有值组成的列表作为结果。

#哈希算法#leetcode#java +3
力扣 hot100 找出字符中所有字母异位词 Java 题解 滑动窗口 哈希计数

摘要:本文解决在字符串s中查找所有p的异位词子串起始索引的问题。使用滑动窗口和哈希数组技术,维护两个长度为26的数组分别记录p和当前窗口的字符频率。通过滑动窗口遍历s,每次移动时更新窗口字符计数并比较两数组是否相等,若相等则记录起始位置。算法时间复杂度为O(n),空间复杂度O(1)。示例表明该方法能正确识别异位词位置,如输入"cbaebabacd"和"abc&quot

#leetcode#算法#数据结构 +2
力扣 hot100 轮转数组 Java 数学&反转&双指针 三种解法 题解

本文介绍了三种解决数组右旋转问题的方法。方法一使用额外数组,通过(i+k)%n计算新位置,时间复杂度O(n),空间复杂度O(n)。方法二采用三次反转策略:先整体反转,再分别反转前k个和后n-k个元素,时间复杂度O(n),空间复杂度O(1)。方法三利用环状替换,计算数组长度和k的最大公约数确定分组数,每组内循环移动元素,时间复杂度O(n),空间复杂度O(1)。三种方法各具特色,特别是后两种实现了原地

#leetcode#算法#java +4
到底了