摘要: 数组, 所有元素都连续的存储于一段内存中,且每个元素占用的内存大小相同。这使得数组具备了通过下标快速访问数据的能力。 但连续存储的缺点也很明显,增加容量,增删元素的成本很高,时间复杂度均为 O(n)。 增加数组容量需要先申请一块新的内存,然后复制原有的元素。如果需要的话,可能还要删除原先的内存。 删 阅读全文
posted @ 2022-08-10 11:11 Jolyne123 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 想法: 1:先把nums2中的所有元素都放到nums1,之后给合并后的数组排序 1 官方代码: 2 class Solution { 3 public void merge(int[] nums1, int m, int[] nums2, int n) { 4 for (int i = 0; i ! 阅读全文
posted @ 2022-08-01 14:09 Jolyne123 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 想法: 1:遍历链表,每次判断节点是否被访问过。(哈希表) 2:快慢指针(看题解之后) 两个指针pq都在head头指针开始(初始化); 快指针每次走两步,慢指针每次走一步,如果存在环,那么两指针一定会相遇,如果不存在环,快指针一定一直在慢指针前面; 1 官方代码: 2 public class So 阅读全文
posted @ 2022-08-01 14:02 Jolyne123 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 无法高效获取长度,无法根据偏移快速访问元素,是链表的两个劣势。然而面试的时候经常碰见诸如获取倒数第k个元素,获取中间位置的元素,判断链表是否存在环,判断环的长度等和长度与位置有关的问题。这些问题都可以通过灵活运用双指针来解决。 Tips:双指针并不是固定的公式,而是一种思维方式~ 倒数第k个元素的问 阅读全文
posted @ 2022-08-01 14:00 Jolyne123 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 想法: 1.迭代 设两个指针pa和pb,不断移动pa和pb,并进行比较,则将较小元素接到新链表,该过程直至pa或pb为null,之后将未空的接到已空之后,得到升序链表 1 //官方: 2 class Solution { 3 public ListNode mergeTwoLists(ListNod 阅读全文
posted @ 2022-08-01 13:54 Jolyne123 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 想法(没看解析之前想不出来) 看了解析和答案 1.贪心算法,若当前元素的之前和<0,则丢弃当前元素之前的数列 设一个maxSum作为子序列最大和,一个sum作为当前子序列求和,一个last作为当前元素的之前和;一个now指针遍历数组 now从0开始,每次判断last是否<=0,若小于,则说明加上了也 阅读全文
posted @ 2022-08-01 13:50 Jolyne123 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 想法: 1.哈希表hashmap 第一种方法:将数组中元素及其下标right都加入hashmap中,对于每个元素n下标left,在map中查找是否有target-n的元素,若有,则返回其下标right 第二种方法:从第一个元素x下标left开始,若哈希表中无target-x的元素,则将key-x,v 阅读全文
posted @ 2022-08-01 13:48 Jolyne123 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 找两个链表第一次指针相同的地方 想法:(本来是没有的,因为没读懂题目描述= =) 1.两个指针,长的先走(长减短相差的长度)这么多的步数,然后就可以开始比较指针,直到指向为空,期间如果指针相同,返回该节点,如果链表未相交,则返回的是null 可是这是链表啊!没法知道长度!!! 2.hashset 将 阅读全文
posted @ 2022-07-31 23:55 Jolyne123 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 想法: 1.设链表长度为n,如5,头节点head,则最后一个元素位置为head-1。 错误,发现行不通,此为链表非数组,存储位置不连续 2.设两个指针p,q,让p,q指向head,再让p指向head的下一个,若不为空,则交换pq(45321),接着q指向p,p指向p的下一个,若不为空则交换(4352 阅读全文
posted @ 2022-07-31 20:17 Jolyne123 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 想法: 1.暴力解法,遇到重复字符就重新开辟空间,最后比较字串长度。 2.指针,但思路不太清晰 查看答案和思路,重新整理 滑动窗口: 1.设left,right用于下标值,length,maxLength长度值,一个set,还有初始给的string s 2.将s转成字符类型的数组,得到数组长度 3. 阅读全文
posted @ 2022-07-31 20:13 Jolyne123 阅读(41) 评论(0) 推荐(0) 编辑