随笔分类 -  算法

摘要:思路: 1.将ListNode一个个放入set,并检查是否已经存在set中 2.双指针,快慢指针 判断是否有环比较简单,找环的起点浮复杂一些。 #include <iostream> #include <set> using namespace std; struct ListNode { int 阅读全文
posted @ 2021-01-14 14:59 11YS 阅读(67) 评论(0) 推荐(0)
摘要:思路是,保存四个节点,翻转前后的节点,翻转中间的链表,记录头尾,然后连接。暂时没有考虑从0和末尾开始翻转。 #include <iostream> using namespace std; struct ListNode { int val; ListNode *next; ListNode(int 阅读全文
posted @ 2021-01-14 11:04 11YS 阅读(159) 评论(0) 推荐(0)
摘要:维护一个最大堆和一个最小堆,最大堆中的堆顶小于最小堆中的堆顶,并且两个堆的数据数目相差最大为1。 #include <iostream> #include <vector> #include <queue> using namespace std; void addNums(int num) { p 阅读全文
posted @ 2021-01-12 15:41 11YS 阅读(126) 评论(0) 推荐(0)
摘要:思路:维护一个K大小的最小堆,堆顶就是最小的元素,新元素都比堆顶小,当堆中元素个数小于K时,直接进入堆,当堆顶小于新元素时,弹出堆顶,新元素加入堆。 #include <iostream> #include <vector> #include <queue> using namespace std; 阅读全文
posted @ 2021-01-12 14:49 11YS 阅读(88) 评论(0) 推荐(0)
摘要:#include <iostream> #include <stack> using namespace std; class GetMinStack{ public: void push(int x); void pop(); int top(); int getmin(); private: s 阅读全文
posted @ 2021-01-12 13:34 11YS 阅读(57) 评论(0) 推荐(0)
摘要:#include <iostream> #include <stack> using namespace std; class MyQueue { public: bool empty(); int front(); void push(int a); int pop(); private: sta 阅读全文
posted @ 2021-01-12 11:22 11YS 阅读(57) 评论(0) 推荐(0)
摘要:#include <iostream> #include <queue> using namespace std; class myStack { public: void push(int a); int pop(); int top(); bool empty(); private: queue 阅读全文
posted @ 2021-01-12 11:21 11YS 阅读(32) 评论(0) 推荐(0)