![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题
桐谷君
这个作者很懒,什么都没留下…
展开
-
leetcode刷题09--用栈实现队列--T232
题目:思路:可以说很简单了,参考一下225的题解,就能想到,使用一个中间栈.让栈的存放顺序和队列一致,这样pop操作和front操作就不用进行修改,唯一需要改动的也只有push操作:先将原栈的数据push到tem栈中,然后将新的元素push到tem中,最后将tem栈的数据push到原栈中,就完成了顺序的保持.见图:代码:class MyQueue {public: ...原创 2019-06-05 15:51:03 · 178 阅读 · 0 评论 -
leetcode刷题08--用队列实现栈--T225
题目:思路:大部分的操作都不难:难点主要在于队列实现栈的push操作,因为队列的push是放到表尾,而栈的push是放到了表头这里可以想到用一个临时队列:上代码:class MyStack {public: /** Initialize your data structure here. */ MyStack() { } /...原创 2019-06-05 15:49:05 · 138 阅读 · 0 评论 -
leetcode刷题07--合并K个排序链表--T23
题目:思路一:暴力法:每次以两个进行操作,合并完两个后形成的新链表继续与下一个进行合并,直到所有的都合并完.不过时间复杂度相当高,指数级这里不予实现,重点介绍后面两种思路思路二:排序法:先将所有的链表节点放到一个vector中,然后整体对vector进行排序(stl的sort排序函数),最后将其连成一个链表;这个较为容易想到,但是借助了stl,有些赖皮.复杂度为...原创 2019-06-05 15:47:54 · 190 阅读 · 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 · 140 阅读 · 0 评论 -
leetcode刷题05--复杂的链表的深度拷贝--T138
题目:深度拷贝:构造一个完全新的链表,即使将原链表毁坏,新链表也可以独立使用自己的思路:无…好吧看一下ppt的思路:ppt中的解法,利用到了stl中的map:知识补充:std::mapmap是一种映射的数据格式在这里可以将链表节点地址作为map序号,其映射值为该地址对应的链表节点序列该工具足矣解决该问题的难点:如何在新链表中保留旧链表random指针所指向的相对位...原创 2019-06-05 15:45:07 · 412 阅读 · 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 · 251 阅读 · 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 · 198 阅读 · 0 评论 -
leetcode刷题02--求链表交点--T160
题目:思路一:可以使用c++自带的stl库中的set集合来进行查找知识补充:stl中set的使用: 其实set就是一个存放数据的集合,但是配备了一些很方便的操作 其中主要要用到的操作有三个: insert():插入元素 find():查找元素,返回给定值值得定位器,如果没找到则返回end()。 end():返回集合的尾迭代器,众所周知,STL 中区间都是左闭右开的,那么 end() ...原创 2019-06-05 15:39:46 · 191 阅读 · 0 评论 -
leetcode刷题10--用栈实现队列--T232
题目:最近琐事加身,加上自控力出现了一次崩盘,已经有一段时间没有更新了,实在惭愧.现在回归状态,去做自己所不敢面对的事情,这才是迎接困难应该有的态度!思路:再写一个最小值利栈就可以搞定:如此一来,最上面的都是最小的,每次push和pop操作对两个同时进行即可代码:class MinStack {public: /** initialize your data st...原创 2019-06-05 15:33:17 · 177 阅读 · 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 · 718 阅读 · 0 评论