算法与数据结构
晨岳
做自己
展开
-
哈希表
Map(映射)和Set(集合)list:可重复,插入时间复杂度O(1),查询时间复杂度O(n);一般用数组或链表存储。map:key-value;set:不重复元素,查询时间为O(1)或O(log(n));一般用哈希表或二叉树存储HashMap, HashSet, TreeMap, TreeSet区别:HashMap/HashSet :查询的时间复杂度为O(1);乱序TreeMap/TreeSet:查询的时间复杂度为O(log(n));排好序的https://leetcode原创 2021-04-27 17:23:54 · 898 阅读 · 0 评论 -
数组与链表LeetCode练习
迭代方法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* pre=.原创 2021-04-27 15:24:31 · 95 阅读 · 0 评论 -
双向链表的插入及删除图解
第一步:首先找到插入位置,节点 s 将插入到节点 p 之前第二步:将节点 s 的前驱指向节点 p 的前驱,即 s->prior = p->prior;第三步:将节点 p 的前驱的后继指向节点 s 即 p->prior->next = s;第四步:将节点 s 的后继指向节点 p 即 s->next = p;第五步:将节点 p 的前驱指向节点 s 即 p->prior = s;第一步:找到即将被删除的节点 p第二步:将 p 的前驱的后继指向 p 的后继,即 p.转载 2021-04-23 16:06:24 · 2432 阅读 · 0 评论