leetcode刷题
桐谷君
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode刷题09--用栈实现队列--T232
题目: 思路: 可以说很简单了,参考一下225的题解,就能想到,使用一个中间栈. 让栈的存放顺序和队列一致,这样pop操作和front操作就不用进行修改,唯一需要改动的也只有push操作: 先将原栈的数据push到tem栈中,然后将新的元素push到tem中,最后将tem栈的数据push到原栈中,就完成了顺序的保持. 见图: 代码: class MyQueue { public: ...原创 2019-06-05 15:51:03 · 239 阅读 · 0 评论 -
leetcode刷题08--用队列实现栈--T225
题目: 思路: 大部分的操作都不难: 难点主要在于队列实现栈的push操作,因为队列的push是放到表尾,而栈的push是放到了表头 这里可以想到用一个临时队列: 上代码: class MyStack { public: /** Initialize your data structure here. */ MyStack() { } /...原创 2019-06-05 15:49:05 · 198 阅读 · 0 评论 -
leetcode刷题07--合并K个排序链表--T23
题目: 思路一: 暴力法: 每次以两个进行操作,合并完两个后形成的新链表继续与下一个进行合并,直到所有的都合并完. 不过时间复杂度相当高,指数级 这里不予实现,重点介绍后面两种思路 思路二: 排序法: 先将所有的链表节点放到一个vector中,然后整体对vector进行排序(stl的sort排序函数),最后将其连成一个链表; 这个较为容易想到,但是借助了stl,有些赖皮. 复杂度为...原创 2019-06-05 15:47:54 · 246 阅读 · 0 评论 -
leetcode刷题06--排序链表的合并--T21
leetcode刷题06–排序链表的合并–T21 题目: 自己思路: 超时了,还是记录一下,哎,自己还是真的菜,要多练才行! /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), ...原创 2019-06-05 15:46:00 · 190 阅读 · 0 评论 -
leetcode刷题05--复杂的链表的深度拷贝--T138
题目: 深度拷贝: 构造一个完全新的链表,即使将原链表毁坏,新链表也可以独立使用 自己的思路: 无… 好吧看一下ppt的思路: ppt中的解法,利用到了stl中的map: 知识补充: std::map map是一种映射的数据格式 在这里可以将链表节点地址作为map序号,其映射值为该地址对应的链表节点序列 该工具足矣解决该问题的难点: 如何在新链表中保留旧链表random指针所指向的相对位...原创 2019-06-05 15:45:07 · 482 阅读 · 0 评论 -
leetcode刷题04--链表划分--T86
题目: 自己的思路: 两个指针,一个指前:B 一个指后:A 还有一个尾节点:tail,tail_1(记录原来的尾位置,永不变,用来对比) 第一步: 遍历A,每次B保存A前面那个节点,A先找到第一个大于x的节点,将其放到最后面 //A指向的节点放到最后面 tail->next = A; //把A和前一个节点断开 B->next = A->next; //A指向节点之后的节点置空...原创 2019-06-05 15:43:18 · 373 阅读 · 0 评论 -
leetcode刷题03--链表求环--T141,142
leetcode刷题03–链表求环–T141,142 题目: T141和T142的区别在于:前者不用返回环起始节点,后者需要 思路1: 用set求解 如图: 思路很容易理解 直接上代码了 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *...原创 2019-06-05 15:41:56 · 262 阅读 · 0 评论 -
leetcode刷题02--求链表交点--T160
题目: 思路一: 可以使用c++自带的stl库中的set集合来进行查找 知识补充: stl中set的使用: 其实set就是一个存放数据的集合,但是配备了一些很方便的操作 其中主要要用到的操作有三个: insert():插入元素 find():查找元素,返回给定值值得定位器,如果没找到则返回end()。 end():返回集合的尾迭代器,众所周知,STL 中区间都是左闭右开的,那么 end() ...原创 2019-06-05 15:39:46 · 253 阅读 · 0 评论 -
leetcode刷题10--用栈实现队列--T232
题目: 最近琐事加身,加上自控力出现了一次崩盘,已经有一段时间没有更新了,实在惭愧. 现在回归状态,去做自己所不敢面对的事情,这才是迎接困难应该有的态度! 思路: 再写一个最小值利栈就可以搞定: 如此一来,最上面的都是最小的,每次push和pop操作对两个同时进行即可 代码: class MinStack { public: /** initialize your data st...原创 2019-06-05 15:33:17 · 237 阅读 · 0 评论 -
算法刷题11--合法出栈序列判断--poj-1363
题目: 思路: 自己想没有想出来… 看图: 看图很容易理解,用了一个原顺序栈,顺序不对栈定不能pop净 代码: #include <stack> #include <queue> #include <stdio.h> //序列存储到队列中 bool check_valid(std::queue<int> &order){ ...原创 2019-06-05 16:04:22 · 784 阅读 · 0 评论
分享