摘要: 一、有效的括号、逆波兰表达式求值 注意涉及运算或对比的操作可使用map或对象执行运算 二、滑动窗口最大值 及时去掉无用队列,保证双端队列有序 当前数字>=队尾,就弹出队尾 弹出队首不在窗口内的元素 三、前k个高频元素 map存元素和频率, 建立小根堆,堆中元素有k个,遍历map集合,value值大于 阅读全文
posted @ 2024-03-11 14:33 林晚n 阅读(14) 评论(0) 推荐(0)
摘要: 一、反转字符串 1:类似反转链表,双指针 2:k值反转:每隔 2k 个字符的前 k 个字符进行反转,双指针 二、替换数字 正则匹配,但要运用substring将需要的部分分出来 或是指针。对于线性数据结构,填充或者删除,后序处理会高效的多。 三、反转字符单词 需要删除多余空格,,然后反转 四、右旋字 阅读全文
posted @ 2024-03-09 18:31 林晚n 阅读(15) 评论(0) 推荐(0)
摘要: 一、有效的字母异位词 思想一:数组排序 思想二:哈希表,建立长度为26的数组,利用ASCII码遍历s中字母出现的次数,并在t的遍历中依次减去出现次数,最后再遍历数组,全零则为异位词 思想三、map键值对,类似思想二 二、两数组交集 使用Set 数据结构,自动处理数组中的重复元素 Set 适用于存储唯 阅读全文
posted @ 2024-03-07 15:01 林晚n 阅读(26) 评论(0) 推荐(0)
摘要: 一、移除链表元素 构造虚拟链表,虚拟链表的头节点的指针指向链表头节点 二、设计链表 构造函数创建新的链表节点对象 三、反转链表 思想:改变指针指向,利用temp指针指向每次断开链表的head位置,和双指针更改指向 双指针or递归 四、两两交换相邻节点 不改变节点值的情况下考虑修改指针指向 添加虚拟头 阅读全文
posted @ 2024-03-05 14:39 林晚n 阅读(24) 评论(0) 推荐(0)
摘要: 一、二分查找 思想:寻找左右指针范围的边界 二、移除元素 思想:交换,将与目标值相同的元素赋值为数组最右侧元素值,同时最右侧指针左移,直到当前指针位置=右侧指针位置 三、有序数组的平方 思想:双指针 最大值只可能在数组的两端产生,不断对比左右指针大小排序 四、长度最小的子数组 思想:滑动窗口,不断调 阅读全文
posted @ 2024-03-03 17:15 林晚n 阅读(14) 评论(0) 推荐(0)