概述
文章目录
- 栈篇
- 01 用队列实现栈
- 02 栈实现队列
- 03 包含min函数的栈
- 04 合法的出栈序列
- 链表篇
- 01 链表逆序a
- 02 链表逆序b
- 03 两个链表的交点
- 04 链表求环
- 05 链表划分
- 06 两个链表合并
- 07 两个链表的交点
- 08 两个链表的交点
- 09 两个链表的交点
- 10 两个链表的交点
- 动态规划篇
- 01 什么是动态规划
- 02 两个链表的交点
- 03 两个链表的交点
- 04 两个链表的交点
- 05 两个链表的交点
- 06 两个链表的交点
- 07 两个链表的交点
- 08 两个链表的交点
- 09 两个链表的交点
- 10 两个链表的交点
栈篇
01 用队列实现栈
描述
用队列实现栈的下列操作:
push(x)
—— 元素x入栈;pop()
—— 删除栈顶元素;top()
—— 获取栈顶元素;empty()
—— 返回栈是否为空。
注意
只能使用push_back(x)
、pop_front()
思路
每次插入新元素的时候,建立一个临时队列。先把该元素放到该临时队列中;然后把原结果队列中的元素依次加入到临时队列末尾。
解法
mystack.h
02 栈实现队列
描述
用栈实现队列的下列操作:
push(x)
—— 将元素x放入队列尾部;pop()
—— 删除队首元素;top()
—— 获取队首元素;empty()
—— 返回队列是否为空。
思路
在插入元素的时候建立一个临时栈,先把原栈中的元素都push到这个临时栈中,然后把要新来的元素放到原栈中,再把临时栈中的元素push到原栈中
解法
myqueue.h
03 包含min函数的栈
描述
设计一个栈,包含以下操作:
1、push(x)
—— 元素x入栈;pop()
—— 删除栈顶元素;top()
—— 获取栈顶元素;getMin()
—— 返回栈内最小元素。
2、这些操作的算法复杂度需要是常数级,O(1)
思路
解法
minStack.h
04 合法的出栈序列
描述+思路
解法
checkOrder.cpp
链表篇
01 链表逆序a
描述
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
思路
需要2个辅助指针。
解法
reverseList.h
02 链表逆序b
描述
思路
需要四个辅助指针
找到指定位置的结点m和结点n ,以及结点m-1 和结点n+1。
然后利用这四个结点,可以进行逆转
解法
reverseBetween.h
03 两个链表的交点
描述
思路
解法
getIntersectionNode.h
04 链表求环
描述
思路
解法
hasCycle.cpp
05 链表划分
描述
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。
你应当保留两个分区中每个节点的初始相对位置。
示例:
输入: head = 1->4->3->2->5->2, x = 3
输出: 1->2->2->4->3->5
思路
建立两个临时结点
然后遍历该链表
大的元素放在第一个临时结点建立的链表里面
小的元素放在第二个临时结点建立的链表里面
解法
partition.cpp
06 两个链表合并
描述
思路
解法
partition.cpp
07 两个链表的交点
描述
思路
解法
reverseBetween.h
08 两个链表的交点
描述
思路
解法
reverseBetween.h
09 两个链表的交点
描述
思路
解法
reverseBetween.h
10 两个链表的交点
描述
思路
解法
reverseBetween.h
动态规划篇
01 什么是动态规划
说人话 动态规划就是
1、把原来的问题分解成了几个相似的子问题。(强调“相似子问题”)
2、所有的子问题都只需要解决一次。(强调“只解决一次”)
3、储存子问题的解。(强调“储存”)
02 两个链表的交点
描述
思路
解法
reverseBetween.h
03 两个链表的交点
描述
思路
解法
reverseBetween.h
04 两个链表的交点
描述
思路
解法
reverseBetween.h
05 两个链表的交点
描述
思路
解法
reverseBetween.h
06 两个链表的交点
描述
思路
解法
reverseBetween.h
07 两个链表的交点
描述
思路
解法
reverseBetween.h
08 两个链表的交点
描述
思路
解法
reverseBetween.h
09 两个链表的交点
描述
思路
解法
reverseBetween.h
10 两个链表的交点
描述
思路
解法
reverseBetween.h
最后
以上就是淡淡抽屉为你收集整理的Leetcode面试高频题汇总的全部内容,希望文章能够帮你解决Leetcode面试高频题汇总所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复