玩转算法之面试-第六章(栈和队列)

leetcode 20
在这里插入图片描述
在这里插入图片描述
关键点:
此时栈顶的左括号和当前遍历的右括号匹配,故将左括号从栈顶pop出。
在这里插入图片描述
在这里插入图片描述
leetcode 150:
在这里插入图片描述
在这里插入图片描述
leetcode 71
在这里插入图片描述
栈和递归的关系

递归算法:二叉树中的算法
在这里插入图片描述、二叉树的前序遍历,中序遍历,后序遍历
前序遍历代码:
在这里插入图片描述
练习题:使用栈模拟系统栈,写出非递归程序

模拟在栈中推入命令
在这里插入图片描述
访问根节点:
在这里插入图片描述
相应的推入在这里插入图片描述
此时栈顶是打印1,1出来,然后访问1的左孩子,其实就是访问点2
在这里插入图片描述
访问后,相应的将2的3个命令相应的推入
在这里插入图片描述
访问2的左右孩子,由于均为空,直接取出命令,最后访问1的右孩子3
在这里插入图片描述
将3 的三条命令推入栈,然后循环结束
在这里插入图片描述
在这里插入图片描述

练习:经典非递归方法,去理解递归过程
练习题:leetcode:
在这里插入图片描述
1 理解整形列表
在这里插入图片描述
迭代遍历: hasNext判断是否遍历到了最后一项
next()去访问后面一个元素
在这里插入图片描述
6-46 队列
队列的基本应用-广度优先便利
树;层次遍历
图;无权图的最短路径

leetcode 102
在这里插入图片描述
在这里插入图片描述
关键点:标记点在那个层

在这里插入图片描述

练习题:
leetcode 107
在这里插入图片描述
leetcode 103
在这里插入图片描述
leetcode 199
在这里插入图片描述

BFS(广度优先遍历)和图的最短路径
leetocode 279
在这里插入图片描述
最少的平方数:
思考:如果没有解怎么办?
是否可能没有解?不可能,因为有1

边界情况是否为真的边界情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大数指向小数

数据对:第一个数表示具体第几个数字 第二数表示经历了几段路径到达该点
在这里插入图片描述
性能问题:num-i*i会重复推入队列,冗余的节点

改进:在这里插入图片描述
在这里插入图片描述
这个相对上一版会快3倍左右

leetcode 127
在这里插入图片描述
在这里插入图片描述

衍生题:
leetcode 126
在这里插入图片描述
使用队列求解无权图最短路径

优先队列
优先队列的底层实现:堆
对于堆的底层实现,白板编程

使用优先队列解决算法问题:
在这里插入图片描述
在这里插入图片描述
优先对列屏蔽了堆的具体实现过程
优先队列,默认情况下是最大堆:从大到小
在这里插入图片描述
在这里插入图片描述

最小堆的实现:从小到大
在这里插入图片描述
在这里插入图片描述
如果自定义了:
在这里插入图片描述
个位数越大越靠前
在这里插入图片描述
在这里插入图片描述
6-7
leetcode 347
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当其中的n和k比较接近时,可以采用以下的思路:
在这里插入图片描述
leetcode 23
在这里插入图片描述
k分的归并排序
具体k去多大的时候,该归并排序最优

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POJ 1321 棋盘问题(回溯)

文章目录1. 题目1.1 题目链接1.2 题目大意1.3 解题思路2. 代码2.1 Accepted 代码1. 题目 1.1 题目链接 http://poj.org/problem?id1321 1.2 题目大意 在一个给定形状的棋盘(只能在#号的位置摆放)上面摆放棋子,棋子没有区别。要求摆放时任…

Java多线程系列(二):线程的五大状态,以及线程之间的通信与协作

在Java面试的时候,经常会问到Java并发编程相关的多线程、线程池、线程锁、线程通信等面试必考点,比如: Java并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项 Java并发编程系列:4种常用Jav…

负样本为王:评Facebook的向量召回算法

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术有人的地方就会有江湖,就会有鄙视链存在,推荐系统中也不例外。排序、召回,尽管只是革命分工不同,但是我感觉待遇还是相差蛮大的排序排序,特别是精排…

论文浅尝 | TEQUILA: 一种面向时间信息的知识问答方法

来源:CIKM’18链接:http://delivery.acm.org/10.1145/3270000/3269247/p1807-jia.pdf?ip223.3.116.39&id3269247&accACTIVE%20SERVICE&keyBF85BBA5741FDC6E%2EEEBE655830483280%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35&__acm__15478819…

京东2020算法工程师0824笔试题整理

代码题: 1:开心消消乐: #include #include #include #include #include #include #include #define ll long long #define inf 0x3f3f3f3f #define Max 1001 using namespace std; int dir[4][2]{{-1,0},{1,0},{0,-1},{0,1}}; string …

论文笔记(eTrust: Understanding Trust Evolution in an Online World)

eTrust:理解线上信任进化 原文链接:eTrust: Understanding Trust Evolution in an Online World, KDD’12 原理:用户偏好与项的向量内积 用户与朋友相似度权重*朋友对项的时间衰减评分用户对项的评分 摘要 大部分关于线上信任的研究都假设…

技术动态 | 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?

OpenKG 祝各位读者元宵节快乐!本文转载自公众号:机器之心。选自ISWC作者:Baptiste Rocca参与:思源、李亚洲我们知道强大的深度模型需要很多计算力,那你知道创建一个知识图谱的成本到底是多少吗?德国 Mannhe…

Attention模型:我的注意力跟你们人类不一样

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 小轶背景截至今日,Badanau Attention的原文citation已达1.34w之多。2020年几乎所有主流NLP任务都需要借助attetion来实现。在深度学习全民炼丹的时代,attention是为数不多具有较强…

动态规划算法(Dynamic Programming)之0-1背包问题

文章目录1. 问题引入2. 动态规划求解0-1背包3. 复杂度4. 0-1背包升级版(带价值)5. 0-1背包升级版(带价值)DP解法1. 问题引入 前面讲了0-1背包的回溯解决方法,它是穷举所有可能,复杂度是指数级别的&#xf…

Java多线程系列(一):最全面的Java多线程学习概述

Java并发编程的技能基本涵括以下5方面: 多线程 线程池 线程锁 并发工具类 并发容器 多线程的4种创建方式 继承Thread 实现Runnable接口 实现Callable接口 以及线程池来创建线程 Java线程的生命周期 线程的创建 线程的就绪 线程的运行 线程的阻塞 线程的死…

论文浅尝 | 基于知识库的自然语言理解 01#

本文转载自公众号:知识工场。罗康琦,上海交通大学计算机系2019届博士,研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位,现就职于京东数据科学实验室(Data Science Lab)。他曾在…

推荐系统图算法实用干货汇总(含论文、代码、样例教程)

Hello,今天为朋友们推荐一个值得学习的公众号「浅梦的学习笔记」,小编目前在电商公司从事推荐系统相关的工作。主要分享关于「推荐系统,图算法,NLP&CV以及求职面试」等内容,欢迎关注一起学习和交流~文末可打包下载…

动态规划应用--双11购物凑单

文章目录1. 问题描述2. 代码实现1. 问题描述 双11购物节的时候,某宝给你很多张满300减50的优惠券,你想组合各种商品的价格总和>300,且金额总和越接近300越好,这样可以多薅点羊毛。 回溯算法效率太低,时间复杂度指…

商汤科技2020数据分析师0820笔试题目整理

2019年8月19日 问答题1:缺失值数据预处理有哪些方法?https://juejin.im/post/5b5c4e6c6fb9a04f90791e0c 处理缺失值的方法如下:删除记录,数据填补和不处理。主要以数据填补为主。 1 删除记录:该种方法在样本数据量十分…

Java多线程系列(八):ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

HashMap、CurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制深入谈过hashmap的实现原理以及在JDK 1.8的实现区别,今天主要谈CurrentHashMap的实现原理,以及在JDK1.7和…

论文笔记(Neural Graph Collaborative Filtering)

神经图协同过滤 论文链接:Neural Graph Collaborative Filtering, SIGIR’19 原理:在 user-item interaction graph 上使用 GNN 来学习 user 向量和item 向量,用户向量和项向量的内积来预测评分。 区别: 大部分论文使用 GNN 只是…

论文浅尝 | 基于知识库的自然语言理解 02#

本文转载自公众号:知识工场。罗康琦,上海交通大学计算机系2019届博士,研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位,现就职于京东数据科学实验室(Data Science Lab)。他曾在…

工业解密:百度地图背后的路线时长预估模型!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术编 | YY无论你是苦逼学生(公交地铁狗)、职场萌新(打车狗)还是有钱大佬(有车一族),只要站在了北上广深的土地上,就…

动态规划应用--“杨辉三角”最短路径 LeetCode 120

文章目录1. 问题描述2. DP算法代码3. LeetCode 120 三角形最小路径和1. 问题描述 对“杨辉三角"进行一些改造。每个位置的数字可以随意填写,经过某个数字只能到达下面一层相邻的两个数字。 假设你站在第一层,往下移动,我们把移动到最底…

Java多线程系列(九):CountDownLatch、Semaphore等4大并发工具类详解

之前谈过高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景 ,以及高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8) 今天主要介绍concurrent包的内容以及4大并发工具类。 Java并发工具包 1.并发工具类 …