摘要: 哈希 三数之和和四数之和,和两数之和一样,是对一个数组来进行检索。因为要求元组不能重复,需要用多指针的方法来遍历和判断。由于两数之和没有这个要求且要返回下标,所以用了哈希表。但哈希表难以检测是否重复,不如双指针直接。 四数相加||是对四个数组来做相加,且不要求元组重复,可用哈希表将四个数组简化为一个 阅读全文
posted @ 2024-05-28 20:48 sakilohale 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 哈希 C#常用的数据结构: []Array,ArrayList 数组和动态数组 List 集合 HashSet 哈希集合(无重复值) HashTable 哈希表(obj,obj的键值对) Dictionary<T,T> 泛型的哈希表 什么时候考虑Hash数据结构? 需要高效的判断一个值是否存在在一个 阅读全文
posted @ 2024-05-27 20:48 sakilohale 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 链表 24.两两交换链表中的节点 19.删除链表的倒数第N个节点 02.07. 链表相交 142.环形链表II 题目总结 24和反转链表有些相似,使用虚拟头,指针,temp来模拟每次的交换。 19同样可以使用双指针(或者这里相当于固定长度的滑动窗口) 0207和142的题解方法适合死记硬背,没必要自 阅读全文
posted @ 2024-05-25 16:58 sakilohale 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 链表 203.移除链表元素 707.设计链表 206.反转链表 这三道题都可以用单链表来解决。 这里规定自己必须用dummyHead的方法来做链表题。题中没规定head则只声明一个dummyHead,题中有head,则声明dummyHead指向它,并在最后返回之前将head=dummyHead.ne 阅读全文
posted @ 2024-05-24 12:23 sakilohale 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 977.有序数组的平方 **1. 数组中有正有负,且本身有序。平方后,较大值从两边来比较取出。 **2. 使用头尾指针方法。 209.长度最小的子数组 **1. 从数组中找符合要求的 连续 子数组 **2. 滑动窗口方法:本质为快慢双指针,快指针不断前进直到子数组满足要求,然后慢指针前进直到子数组不 阅读全文
posted @ 2024-05-23 12:56 sakilohale 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 二分查找 1. 使用条件:数组,升序,值不唯一。 2. 时间复杂度 O(logn) 可分为左闭右闭,左闭右开两种区间类型来求解。 左闭右闭:left = 0, right = nums.Length-1,while(left<=right),right = middle - 1. 左闭右开:left 阅读全文
posted @ 2024-05-22 13:54 sakilohale 阅读(186) 评论(0) 推荐(0) 编辑