摘要: **Two Sum ** 题目描述: Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return i 阅读全文
posted @ 2022-12-06 13:53 KksS- 阅读(170) 评论(0) 推荐(0)
摘要: 单调栈 单调栈简单来说是在栈的先进后出基础之上额外添加一个特性:从栈顶到栈底的元素是严格递增(or递减) 具体进栈过程如下: 对于单调递增栈,若当前进栈元素为 e,从栈顶开始遍历元素,把小于 e 或者等于 e 的元素弹出栈,直接遇到一个大于 e 的元素或者栈为空为止,然后再把 e 压入栈中。 对于单 阅读全文
posted @ 2022-12-04 17:43 KksS- 阅读(234) 评论(0) 推荐(0)
摘要: 92.反转链表 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 构建一个虚拟节点,让它指向原链表的头节点。 设置两个指针,pre 指针指向以虚拟头节点为链表的头部位 阅读全文
posted @ 2022-12-03 17:50 KksS- 阅读(320) 评论(0) 推荐(0)
摘要: 142.环形链表 II 方式一:哈希表 我们遍历链表中的每个节点,并将它记录下来;一旦遇到了此前遍历过的节点,就可以判定链表中存在环。借助哈希表可以很方便地实现。 public class Solution { public ListNode detectCycle(ListNode head) { 阅读全文
posted @ 2022-12-02 16:58 KksS- 阅读(86) 评论(0) 推荐(0)
摘要: 86.分隔链表 这个题的意思比较简单就是要把小于x的放一边,大于x的放一边,我们可以把这一个链表分为大于 x,和小于 x 的两个链表,分开后只需要将小于 x 链表的最后一个结点的 next 指向大于 x 链表的头结点的 next 即可,最后将大于 x 链表的最后一个元素置为null即可 class 阅读全文
posted @ 2022-12-01 09:48 KksS- 阅读(80) 评论(0) 推荐(0)
摘要: 21.合并两个有序链表 根据题目要求可以知道这两个链表是升序的,需要将这两个链表合成一个新的升序链表并返回 方法一:迭代 当 list1 和 list2 都不是空链表时,判断 list1 和 list2 哪一个链表的头结点的值更小,将较小值得结点添加到一个新的链表里,将对应链表中的结点向后移动一位即 阅读全文
posted @ 2022-11-30 15:36 KksS- 阅读(57) 评论(0) 推荐(0)
摘要: 160.相交链表 由题目要求可以知道,题目数据保证了不会出现环形 注意,函数返回结果后,链表必须 保持其原始结构 。 方法一:哈希集合 利用哈希表的特性,不能放重复元素 判断两个链表是否相交,可以将结点存储在哈希集合里,因为哈希集合里的元素是不允许重复的 首先遍历链表 headA,将链表 headA 阅读全文
posted @ 2022-11-29 14:02 KksS- 阅读(83) 评论(0) 推荐(0)
摘要: 第一周,链表、栈、队列 206. 反转链表 方法一: 双指针法: 定义两个指针:pre 和 cur 每次让 pre 的 next 指向 cur,实现一次局部反转 局部反转完成之后,pre 和 cur 同时往前移动一个位置 循环上述过程,直至 pre 到达链表尾部 class Solution { p 阅读全文
posted @ 2022-11-28 17:51 KksS- 阅读(114) 评论(0) 推荐(0)