算法刷题之队列
杰明学编程
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 59 - I. 滑动窗口的最大值
题目: 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 方法一:暴力法+遍历 函数完整版代码: #include <iostream> using namespace std; int main() { int nums[8]={1,3,-1,-3,5,3,6,7}; int ans[6]={0}; int k=0; int res=0; for(int i=0;i<8;i++) { res=0; for(int j=i;j<i+原创 2020-10-08 22:27:04 · 86 阅读 · 0 评论 -
103. 二叉树的锯齿形层次遍历
题目: 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 方法一:双端队列+duque+层序遍历 函数代码: class Solution { public: vector<vector<int>> zigzagLevelOrder(TreeNode* root) { vector<vector<int>>res; if(!root)原创 2020-09-07 00:57:46 · 88 阅读 · 0 评论 -
剑指 Offer 27. 二叉树的镜像
同力扣226 :翻转二叉树 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 方法一:引入交换结点temp+递归 推荐函数代码一: class Solution { public: TreeNode* mirrorTree(TreeNode* root) { if(!root) { return NULL; } TreeNode *temp=root->left; root-原创 2020-09-06 22:57:40 · 102 阅读 · 0 评论 -
102. 二叉树的层序遍历
题目: 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 题解思路: 方法一:BFS+引入二维数组+一维数组 1.申请一个queue,利用先进先出的特性,把头结点放进去。如果左右结点不为空就放入队列中。 2.一维数组用来存二叉树一层的元素的值,二维数组用来存一维数组。 函数代码: class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) {原创 2020-09-06 22:20:40 · 187 阅读 · 0 评论