news 2026/4/3 3:03:59

LeetCode 热题 100--字母异位词分组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 热题 100--字母异位词分组

题目:

解析:

核心思路

  • 字母异位词的特征:相同字母组成的不同单词,排序后会得到相同的字符串
  • 使用排序字符串作为哈希键:将每个单词排序后作为分组的唯一标识
  • 哈希表存储分组:键是排序后的字符串,值是对应的原始字符串列表

1.先创建一个哈希表用于存储分组,键是排序后的字符串,值是包含原始字符串的列表

2.将字符串转换为字符数组再排序,将排序后的字符串作为键

3.使用getOrDefault获取对应的列表(不存在则创建新列表)

4.将当前字符串添加到列表中

5.更新HashMap,将列表与hash表建立映射

class Solution { public List<List<String>> groupAnagrams(String[] strs) { Map<String, List<String>> hash = new HashMap<String, List<String>>(); for (String str : strs) { char[] array = str.toCharArray(); Arrays.sort(array); String key = new String(array); List<String> list = hash.getOrDefault(key, new ArrayList<String>()); list.add(str); hash.put(key, list); } return new ArrayList<List<String>>(hash.values()); } }


char[] array = str.toCharArray();
作用:将字符串转换为字符数组

返回:char[] 字符数组

示例:"eat" → ['e','a','t']


Arrays.sort(array);
作用:对字符数组进行升序排序

原地修改:直接修改原数组,不返回新数组

排序后:['e','a','t'] → ['a','e','t']

List<String> list = hash.getOrDefault(key, new ArrayList<String>());
作用:获取指定key对应的值,如果不存在返回默认值

参数1:key - 要查找的键

参数2:defaultValue - key不存在时返回的默认值

返回:key对应的值或默认值

优点:避免空指针检查,代码简洁

hash.put(key, list);
作用:将键值对放入HashMap

如果key存在:更新对应的value

如果key不存在:添加新的键值对

返回:key先前关联的值(如果没有则返回null)

hash.values()
作用:返回HashMap中所有值的集合视图

返回类型:Collection<V>

特点:返回的是视图,不是新集合,修改会影响原Map

new ArrayList<>(collection)
new ArrayList<List<String>>(hash.values())

作用:使用集合初始化新的ArrayList

参数:一个集合(Collection)

特点:创建新列表,包含参数集合的所有元素

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/29 11:12:52

xbox手柄驱动下载 新手也能快速安装

在电脑上玩游戏时&#xff0c;有时会遇到手柄无法识别或者按键功能不完整的情况。这通常是因为系统缺少相应的驱动程序&#xff0c;导致手柄无法正常工作。为了让你的Xbox手柄顺利连接电脑并发挥全部功能&#xff0c;本文将介绍几种下载和安装Xbox手柄驱动的方法&#xff0c;帮…

作者头像 李华
网站建设 2026/3/28 5:23:37

解锁更多编曲玩法,AI编曲软件为原创音乐人补充歌曲创作思路

在音乐创作的领域里&#xff0c;编曲一直是至关重要的一环。长久以来&#xff0c;人工编曲占据着主导地位&#xff0c;编曲师们凭借着自己深厚的音乐素养、敏锐的听觉和独特的创意&#xff0c;为一首首歌曲赋予鲜活的生命力。然而&#xff0c;随着科技的飞速发展&#xff0c;AI…

作者头像 李华
网站建设 2026/3/28 18:15:10

别再暴力Clip了!千问提出GatedNorm,统一视角揭秘残差流玄学

在 Transformer 的训练过程中&#xff0c;只要稍微留心观察权重或激活值的分布&#xff0c;你就会发现残差流里的那个怪象&#xff1a;无论输入何种 token&#xff0c;某些固定维度的激活值始终显著高于其他维度。 与此同时&#xff0c;Attention Map 中的首个 token&#xff0…

作者头像 李华
网站建设 2026/3/30 23:41:03

简单理解:门电路

门电路的核心是用 ** 晶体管&#xff08;主要是 MOSFET&#xff09;** 作为开关元件&#xff0c;通过组合不同的晶体管连接方式&#xff0c;实现 “与、或、非” 等基本逻辑功能。下面从最基础的原理到具体电路&#xff0c;一步步拆解门电路的构成。 一、核心原理&#xff1a;…

作者头像 李华