粉丝614获赞1417

好,我们现在来看一下土地利用数据下载及使用的一个方法。呃,土地利用数据的话,现在有很多网站都是能公开去下载到的,然后我这里有 个人觉得有两个比较好的网站啊,比较下载起来比较方便的网站。一种第一个,第一个是可以下载全球的。哎,是这个 进度是十秒的一个土地利用覆盖的一个数据啊,是这个网站我这里都准备好了啊,你可以直接去下载,然后,呃,这些是什么数据啊?这些是可以,我们看到这些是什么意思?这个 其中第一个,第一个是他的一个文件的一个整个一个文件名,然后后面这些蓝色的就是你可以去点击下载他前面这几个是他的一个数据的一个名称啊,比如说是哪个版本的,从哪里来的啊? 然后这个精度是多少?后面后面是他的一个范围,一个精度跟纬度。精度跟纬度啊,我这里下载了一个,我们来看一下, 比如说是我们就是这个啊,我们是。呃,我这里是代表的就是纬度是二十八度,然后精度是一百二十度的。 哦,你可以根据你自己所在的一个地方去直接去下载,这里全球的都可以去下载,假如说你有时间的话,你可以 去下载。呃,如何下载的话,你直接点击一下就可以,就是说我们再下载一个,再往下翻我们的这个数据在下面, 比如说我们下载一个二十九度的啊,二十九度。 好,我们下载一个三十度,三十度。然后是像这种负的啊,负的就是在在西经,西经代表的是西经,我们是在东京的,比如说三十一百二, 然后你就可以直接下载,然后放到哪里?放到我们这个课件下面来。 好,这个数据的话很快就可以下载去下,下载好。 哎,就是我们现在这个就已经下载好了,他只有三十九点七啊,三十九点七, 好,这是一个地方啊,还有一个地方就是在我们的一个三十秒的,这个是在我们中全国地理信息资源目录服务系统下面,你可以去下载, 但是你下这个地方,你去下载的话是需要呃,登录注册一下,登录注册完以后的话,他是按照一个图符的去下载的,按照图符 去下载了,下载好以后的一个数据的话是这个样子的啊,我们这是一个按照一个图符去下载,就是这个样子,然后你解压出来 啊,这是两个地方去下载我们的一个土地覆盖数据的一个方法,然后我们来看一下这个下载好以后啊,我们怎么用啊?比如说我现在, 我现在这个地方,我现在这个地方就已经做好了,根据我们衢州市的一个范围把这个裁剪出来了啊,我们可以把这个给关闭一下, 我们直接把这个数据把它拿过来啊,拿过来。然后呢?比如说我们拿我们刚才的这个数据来看一下,直接把它拖入进来我们刚才下载的这个数据, 我们这个土地利用类型啊,土地利用类型这个数据的话,他已经给我们分好类了,然后他这里有这么些代码,有一些代码我们来看一下, 我们要点击唯一纸,然后把我们这个代码全部给拿过来,然后这些代码是什么意思?这些代码的话是,呃,国际通用的一个代码类型。呃,我们可以看一下,我们在这个 这里提供了有一个全球三十米覆盖数据,他的一个数据说明,一个数据说明,然后他这里的话有 告诉你说这些数据所代表的是对应的是哪一种类型?比如说十,他所代表的就是耕地,然后二十就是森林,包括他的一个颜色所对应的 rgb 颜色他都有。呃,规定有规定, 然后我们只要根据这个表格啊,这个表格去配色就可以了,然后我这里已经配好了。假如说你不知道怎么配色啊?不知道怎么配色的话,你可以去看一下,我们,呃,在前面有一个取色妙用,取色去快速佛化 这个课程当中有讲到如何如何根据你这个去配色去配色。然后我这里已经配好了。比如说我们打开属性,然后符号系统这里你双击进 去看一下。哎,比如说我的这里已经已经收拾好了海域,然后是水体、森林啊,这是没有数据的,然后这是耕地, 耕地、灌木丛等等啊,然后呢你需用的时候的话就可以根据啊,比如说这是十,十的话应该就是 耕地,然后这是森林 三十三十的话就是 好,因为时间关系,我这里就不一一去说了。然后我这里已经做好了,有一个啊, 我这里有一个衢州市的土地利用类型,我已经做好了,然后我们可以把这个数据直接导入进来啊,导入进来,然后点击应用, ok, 我们再缩放至图层,然后这样的话就能快速的把根,呃,把我们这个土地利用类型这个这一块啊,这一小块把它给 快速符号画出来。符号画出来以后,你可以根据你的一个范围去对他进行一个提取,比如说我这里有一个去做式的范围,就可以利用一个按研磨提取。呃,我们可以在下节课来看来讲一下,我们可以利用建立一个模型构建器,然后去做 好,我们把这个关闭掉, 我们再打开我们这个类型。好,这是我们 十秒的一个精度,我们可以看一下他的一个属性,这里圆,这里的话,因为我这里是已经转换过的啊,所以我们再拿我们原来最原始的那个数据可以来看一下,很明显的能看出来他是 多大的一个数据啊,这也是一个十十秒的,因为我们现在这个是一个地理周边细,所以他看不出来。 然后我们来看一下我们三十秒的,三十米的,三十米的话,呃, 他也是一样的,你解压出来以后会有这么个文文件,文件,然后土地利用类型的话也是这个啊啊,我们直接把它拖入进来, 透露进来,我们把它缩放 缩放到我们这个课程当中来啊。然后他这里默认情况下,他这里会有一些很怪的这些纸,这些纸,然后我们怎么去用?我们同样的在属性这里 啊,我们这里看到啊,这个校园大小是三十乘三十米的,因为他这个投影是一个高斯投影的,所以他是个三十乘三十米的,他能直接看出来。好,我们在符号画这里我们要点击一个为一值 点,这个为止的话,我们这个土地利用类型的这些代码的话就已经全部出来了。然后这些,呃,我们这里可以看到 就是这些零啊,呃,这些零啊,海,二五五是海域啊,二五五是海域。好,同样用同样的方法,我们可以直接把它给拿过来 啊,拿,拿过来,然后我们这里缺少了零,就可以再添加一个啊,比如说把我们这两个添加进来, 这是 无数据,无数据的话他是一个黑色的, 然后这是海域,海域我们给他一个,我们这里有定义好的,有定义好的是一个浅蓝色的,然后点击 好,我们可以把我们这个符号画以后的这个图层,把它保存下来,运存为图层,然后方便我们以后对它进行一个调用啊,我们把它放到我们这个课件下面, 好把它保存下来。 ok, 然后我们中这里可以看到这边的话就是一些无数据的一些数据, 然后同样的啊,这个范围是特别大的,然后你可以根据你的一个行政区划,或者是你的一个工作区的一个范围对他进行一个裁剪啊,我们把这个移除掉。 好,我们这节课的话就讲到这里,主要是讲了如何根据我们的这两个网站去下载我们所需要的一个土地利用类型的一个数据。然后呢我们 再来演示一下怎么出图,出图的话我这里的话 快速的来演示一下,因为 出图在其他课程当中讲了有很多,我们把这个插入一个图里, 然后一直下一步,因为我们要出土的只是这么一个土地利用类型的这么一个土建, 那我们把它放到这边 好,然后我们再添加一个比例尺, 他老假如说你要做好,你需要做好的话,你就需要再去美化一下啊,我这里就不再一一添加了。呃,我们这节课的话就讲到这里。



推荐一款基于家瓦斯 cover 的开元可丝袜图表库 echese, 他可以流畅的运行在 pc 和移动设备上,京东当前绝大部分浏览器,这是插件的官方地址。先来看看他的所有视力, 可以看到视力中有丰富的可视化类型,有常规的折线图、柱状图、 k 线图,还有用于地理数据可视化的路,路径图等。 接下来通过快速入门来实现我们的第一个图标,可以看到这里有一段完整的代码,我们一键复制,然后新建一个 dm 点 htm 文件,接着用编辑器打开,将刚刚复制的代码粘贴进去。 接下去我们需要获取到一恰的文件,来到代码中引路,一恰的文件有三种获取方式,分别是 github 获取、 mpm 获取以及 cdn 获取。为了方便我们直接用 cdn 的方式引入,复制一下所有的技能, cdn 的路径,替换掉原来的地址。在浏览器中打开 dm 文件查看效果, 可以看到这是一个柱状图, x 则是产品名, y 则是产品对应的销量。一个简单美观的图标就这样诞生了,这就是一掐指的使用。

接下来呢我们一起来学习一下百度地图的基础 api 的使用。首先呢我们来看一下百度地图的开放平台,在百度地图的开放平台中呢,它提供了各种平台的一些 sdk, 比如说呢,我们来看一下这个图,这个里面呢有这个外边相关的一些啊,这个相关的一些这个 api, 对吧?还有什么呢?还有我们这个安卓啊相关的一些 api 啊,还有什么呢? ios 啊相关的 api, 还有一些我们服务端的一些 api, 我们可以大致的来看一下,咱们把这个地址呢打开,这个呢就是百度地图的开放平台,这个里面呢有很多的一些啊,这个功能啊,咱们可以看一下上面在这一块啊,呃,在这呢有一个开发文档,这个里 面呢,其实我们可以看到啊,百度地图的开放平台呢,有外不端的,对吧?有这个贾瓦斯亏不端的就是结实的,还有微信小程序端的,还有这个地铁图啊,还有位置数据可视化呀,这个呢是 reaction 这一端的啊,这个 api 啊,在这个呢就是安卓的这个 api, 比如说有安卓的地图的 sdk 啊,定位 sdk 啊,还有阴阳诡计啊啊等等,还有 ls 的啊,服务端的, 服务端里面呢有这个 lbs 四有云,这个 lbs 是什么意思呢?他其实就是基于我们位置啊, l 就 lokis 啊,位置的一个服务啊,贝斯基于这样的一个服务啊 啊,可以搭建私有云。然后呢还有像这个鹰眼轨迹服务,这个呀就是咱们后面呢要去使用到的 一个服务,就可以去记录用户的一个行驶和运动轨迹。下面这个呢就是外部 api 啊,这个呢是地图吊起 api, 还有什么百度地图车级版啊,再再往这面走呢,是一些开发者的工具, 比如说有视力中心啊,开发者的公开课呀等等啊,这里面呢?呃,会有我们会用到几个啊?比如说会有一个叫做呃坐呃坐标时取器,可以来看一下, 这个呢就是呃百度地图呢提供的一个呃坐标时期的这样的一个系统,比如说呢我们可以选择某一个点,比如说这个是北京动物园,我们可以点一下, 哎,在右上角这个位置是不就会出现啊,这个位置刚刚我们点击这个位置的经纬度啊,在这啊,经纬度在这就可以把它展现出来了,就是方便我们去可 可以去读取到某一个位置的这个经纬度啊,这个呢是时取系统啊,当然了还有一些啊,还有些什么呢?比如说啊,像这种啊什么呢?就地图生成器啊,啊,这也可以去设置,比如说你设这个中心,然后呢点击查找啊,就可以生成这样的一个地图啊。 呃还有其他的啊,其他的呢?呃,比如说还可以去啊,这个像这个因言诡计管理台啊,这个呢就是我们后续呢也要用到的一个管理系统,你比如说呢它含有一个叫做个性化的地图编辑器, 这个呢就是个性化的地图编辑平台,在这个里面呢你可以根据自己的一些喜好,然后呢去做一些编辑来生存啊,不同样式的一些地图啊,这样的话呢,呃就看起来会比较个性一点啊,然后呢往下面走, 这个呢都是可以去做一些设置的,比如说你第一步啊选择要修改的地图的元素啊,第二呢就可以去呃指定元素的一些这个样式啊,比如说颜色呀,什么样式啊? 然后呢呃可以编辑或者是下载一些节省的这个样式,最终呢就可以去给他去展现出来了啊,就可以自定义啊这个地图啊,这个也是一个非常好的啊这样的一个功能。 所以说呢百度这个开放平台啊提供了很多的一些这个功能。呃各个端的开发呢都有,对吧?有我们的外部端,有微信小程序端,还有 ls 呀,安卓呀,还有我们的服务端,还有一些使用的一些工具。 这个呀就是百度地图开放平台啊所提供的一些这种啊功能啊。好,那我们接着啊继续往下面来看。呃,接下来呢我们呃就 需要去使用百度地图的这个开放平台,要想使用它呢,我们必须得先注册账号,然后呢进行做一个登录。登录之后啊我们就需要呢进入到他的控制台,在控制台里面呢就创建一个应用, 如果没有账号的同学呢就自己去注册一个百度的账号就可以进行登录了,注册的这个流程呢我就不做演示了,这个呢大家自行注册就可以了,在注册完成之后呢进行登录,登录成功之后呢就进入控制台进入我的应用,然后呢创建应用, 创建完应用之后啊就可以去使用百度地图所提供的一些 api 了。好,下面呢我们就来演示一下,我们找到啊这个控制台在这里点 吉他,我现在呢已经就登录了,然后呢直接进入在这里呢有一个叫做应用管理,这有一个我的应用点击我的应用, 在我的应用下面呢会罗列出你已经创建的一些这个应用,下面的这几个呢都是我之前啊所创建的一些应用。呃接下来呢我们呢给大家来演示一下如何创建一个新的应用,咱们点击这个按钮叫做创建应用来看一下啊创建应用 我们给他设置一个应用的名称,比如说来一个测试三应用的类型呢,我们选择这个浏览器端啊,我们呃最开始学习基础 api 呢, 通过他也通过我们的结实呢来做一个学习啊。呃所启用的一些服务呢,这个全打勾就可以了,什么家法会的 api 啊什么的 普通定位, ip 定位啊,还有一些坐标转换呀等等等等啊一些这个服务,然后继续往下面来走,在这里有一个设置一个啊 rifu 白名单,也就是说呢只有去设置了这个白名单的网站呢才能够呃使用这个呢也是出于安全的一个考虑。 呃我们呢为了方便使用啊,咱们在这里直接给他一个新号就可以了,新号的意思呢就是我们呢不做任何的限制,呃我们无论在本地也好,或者我们在生产环境也好啊,都可以去直接去使用他, 但是呢如果是我们要在生产环境所所用的啊这个服务的话呢,我们必须呢给他设置啊我们相关的一些啊这个白名单,比如说呢我们可以来一个什么新点啊,什么什么的域名啊,这样的话呢,呃就可以保障我们的一个这个 安全性。好,下面呢我们来点击这个提交。好,这样的话呢我们的这个啊应用的就创建好了,在这里呢有一个叫做测试三啊这样的一个应用, 呃,在这个里面呢,我们可以看到有应用的编号,应用的名称,还有访问应用的 ak, 要注意了, 这个非常非常重要啊,非常非常重要,在我们后续呢使用百度地图所提供 api 的时候呢,他呢是必须要去传递给这个百度地图的啊,要不然的话你是不能够使用的啊, 后面呢有应用类型啊,这个呢是备注啊,备注呢咱们就不写了,如果说你需要对应用的去做一些啊这个更新内容的话,可以点击这个设置啊,如果说你现在呢不想要这个应用了,可以把它删除啊,点击删除啊就可以了。好,这样的话呢,我们是不是就已经啊成功的就创建了我 我们的一个应用,后续的我们就可以基于这个应用呢去做一个使用了啊,当然了我们最开始学习使用的呀,就是这个叫佳 yscribe 的 api 啊,通过它呢先去学习一下百度地图 api 的一些基本的使用。 好,我们再来看一下啊我们的 ppt 来看一下啊,这个是我们呃一个账号,对吧?然后呢去登录进来进行做一个创建,创建的时候呢,我们刚刚也讲过了,就是呃先去设置我们的用户名 对不对?然后呢我们去选择我们的类型,首先呢我们选择是浏览器端去进行做一个学习,还有呢就是我们可以设置我们的一个白名单,我们把它设置为新号啊,比较方便一点,就没有限制。在我们创建成功之后呢,我们就会得到我们的一个应用的一个这个 ak, 这个 ak k 呢是非常非常重要的 a k, 在我们后续的 api 的使用过程中啊,我们会用了它。好,这个呢就是我们给大家所介绍的百度地图的开放平台的一些基本的一些功能啊,以及我们这个应用的一个创建好,关于他呢,那我们就先讲到这里。

大家好,这里是代码所养录,我是成员卡尔,那这期视频呢,我来给大家讲解代码所养录中哈西表章节里边的第三题啊,两数之和。那这道题目呢,是立扣上的第一题啊, 那很多刚开始刷立扣的同学呢,就是可能刷的第一道题目就是他啊,会认为,哎,立扣上第一题应该很简单吧啊,其实这道题目呢啊,并不简单啊,至少对于啊刚开始学算法的同学来说,这道题目啊,并不简单。 那我们来说一下这道题目的提议啊,啊,就是给大家一个数组啊,然后呢,给大家一个目标值,在这个数组中呢,我们要找到两个元素相加等于这个目标值,然后我们要返回这两 个元素的就所在数组的下标啊,这道题目呢,其实是哈西表里边啊,比较经典的题目啊,是用 map 来解决的。那这道题目的思考过程和解题的方法究竟是什么样的呢?啊,我来给大家啊,大体化一下。 呃,这里呢有一个数组啊,一个数组,那这个数组呢,我们可以二七 三六吧啊,二七三六,然后呢,我们的目标值是九啊,目标值是九啊, 我们要找到两个元素啊,相加等于九,并返回这两个元素的下标啊,如果没找到的话,我们就返回空啊,如果发现有多对的话啊,有多个两个元素符合,相 加等于九,我们就返回一个就可以了。那这道题目呢,我们为什么会想到用哈西法来解决这道题目啊?我们来回顾一下,在上两期视频的时候呢,其实我有讲到,什么时候我们会想到用哈西法啊,用哈西表来做一下映射啊,每当我们遇到 要判断这个元素是否出现过,或者是要判断这个元素是否在这个集合里出现过的时候, 我们啊第一反应就是,哎,我是不是可以用哈西法呀?我是不是应该用哪些哈西表的结构啊,来做一下处理啊?啊?这是我们一个正常的一个思考过程。 那么这道题目里边我们为什么会想到用哈西法啊?因为我们在便利一个元素的时候啊,我们要存放我们之前便利过的元素, 例如说我这里便利到三了,我是不是要,哎判断一下,呃,一个元素我们是否之前便利过啊?如果我们之前便利过的话啊,我们是不是就是找到了一对,然后这一对相加是等于九啊?是吧?例如说假如便利到元素三,那我们是不是 去找元素六,因为三加六等于九吗?我们是不是找元素六我们是否便利过,是吧?是不是要,哎要判断一下呢?就前面有没有出现过元素六的 啊,这个啊所对应的这个位置是吧?那所以说呢,其实我们这道题目呢,是需要判断啊,一个元素啊是否便利过,那,那如何判断他是否便利过呢?我们就把我们便利过的元素加到一个集合里,然后我们 每次啊便利一个新的位置之后,我们就判断,哎,我们想寻找的这个元素是否在这个结合里出现过,如果在这个结合里出现过,就是我们之前便利过,那么这个结合啊,我们要用什么呢啊?我们就要用一种啊哈西表的结构啊, 那这里呢,我现在是讲了这道题目,我们为什么会想到用哈西法,用哈西表啊?那接下来我们再来说,我们应该用什么样的哈西表来存这个结构啊? 因为我们想要找一个元素,是吧?那这个元素是否出现过,同时我们还要知道这个元素在数组里的下标,那此时我们是不是要啊相对要判断两个元素啊?一个 是啊,一个是数组里边的这个数值,是吧?一个是数组里边的这个下标,那么我们应该用什么?那么我们应该用什么来存放呢?啊?我们之前在上两期视频里边,第一期哈西表的视频我讲了用数组 啊来做哈西映射,是吧?第二期视频里边我讲了用 set 来做哈西映射,那这期里我们要存放两个元素,用数组,用 set 都不行了吧?那此时我们就应该用 map, map 的 key, 这是 map 的歪流 啊,此时我们就想到了用脉啊,那么有同学可能想了,为什么要拿这个数啊?这个数组里边的这个数值作为 k 呢?为什么不用下标来做 k 呢?啊? 那这个问题呢,就要思考我们要查找的是什么?我们是不是查找一个元素是否出现过?我们要找的是元素是否出现过,对吧?啊?那么我们就应该把这个元素作为我们的 k 啊,这才是脉魄的啊,作用脉搏他就是能在最快的时间段啊,脉搏他就是能在最快的时间内啊,去查找这个 k 是否在这个脉搏里出现过,那么我们要查找的是这个元素是否出现过,那么 那么这个元素就作为我们的 k, 那我们还要知道这个元素所对应的下标,那么这个下标就可以作为我们的 y 六啊。那此时呢,我就讲了这道题目啊,我们为什么要用哈西法是吧?那 以及这道题目我们用哈写法之后,我们用哪种数据结构,为什么要用 map 是吧?接下来呢,我们再来讲啊,整个这道题目的一个解题过程,以及 map 在这道题目里边的作用啊。 那么,呃,首先呢,我们要知道我们这个 map 在这道题目里边它呃具体的功能是什么? map 是用来存放我们便利过的元素啊,很多同学这道题目做过了,其实,呃没有想清楚 map 在这道题目里边究竟是做什么的啊? map 如何用来存放我们便利过的元素呢?我在这里大大体给大家画一个过程啊。 呃,这是 map 集合啊,那么我们当前便利的这个是原 数二是吧?那么我们是不是想要找一下元素七是否我们便利过,是吧?因为二加二加七等于九吗?我们他给的是九是吧? 我们要找元素七我们是否便利过?那么我们是不是上这个麦克里边去查询的,是吧?因为麦存放我们便利过的元素啊? 那因为我便利的是第一个位置,我的脉吧,还没有啊,存放我们便利过的元素,所以说脉不是空,对吧?那此时呢,我们查找这个元素七是否我们便利过呢?哎,发现,哎,我们这个 麦克里边没有,没有的话,我们是不是接下来往后便利是吧?指向下一个元素,指向下个元素,那麦克是用来存什么的?存我们便利过的元 元素,那这个此时元素二我们是不是已经便利过了?是不是应该放在这个 map 集合中,以啊,以方便来我们用来后面来便利的时候来查询我们是否便利过对应的元素,好像 map 里做查询。 那所以说呢,我们要把这个二放进我们的脉盆里啊,这是 k 啊,那么 y 六是什么呢? y 六是零,是吧?存放我们的这个下标啊, 那么我们又变到便利到第二个元素是不是七啊?那么我们此时是不是想找元素二, 我们是不是有便,有没有便利过呀?因为七加二等于九吗?我们想找元素二,我们有没有便利过,那么我们怎么知道我们有没有便利过元素二呢?去迈步里查呀,对吧?那此 此时我们再去迈步理查,是不是找到了元素二啊?因为迈步就是存放我们便利过的元素吗?是吧,那找到了元素二,我们是不是把元素二所对应的下标也找到了,那么此时我们是不是找到了一个 结果级啊?这个结果级符合我们的要求吧,像元素相加等于九,那么他的下标是什么呢?啊? 在这里我们找到了二,那么我们就找到了对应的下标是零,那么我们此时便利的是这个下标一的位置是吧?一的位置存放的七吧,所以说一零 这个下标所存放的元素相加就等于我们的目标值啊。那其实呢,这个就是呃,整个这道题目的解题思路啊,那么我在讲 讲解这个解题思路里呢,重点讲了几点啊?应该是讲了四点啊。呃,首先是这道题目为什么会想到用哈西法,那么明白了这道题目的整个啊解题思路之后呢,我们再来看一下具体的代码应该怎么写啊,其实这个思路哦, 就是想清楚之后呢代码就很容易了啊。那岁月家里边 map 其实是有三种 map 的啊,有一个是 map, 有个是 an order 的 map, 还有一个是 monty map 啊, 那 map 和 monkey map 它底层实现是烘黑术啊,这个啊, order map 它,呃底层实现是一种哈西结构啊,直接做映射的啊。那么本题 呢,我们要使用安 outer 的卖法啊,因为他用来存和读效率是最高的,至于为什么啊,大家呢,去看啊,我在代码所养录网站上啊,哈西表张杰有本期视频的文字版, 我对于 c 家家里边的这三种术语结构做了详细的分析,什么情况下应该用哪个?每种术语结构的增山改查的时间复杂度又是什么? 在这里呢,我就不去做详细的讲解了啊啊,如果使用 cd 加的同学可以去看一下啊,在文章中呢,我也给出了其他语言版本啊本题的实现的代码, 那么这里呢,我是使用的是 an order 的 map。 好,我们首先呢是定义一个 an order 的 map, 然后这个 app 呢,它的 key 是一个 in, 一个 in 型, y 六也是一个 in 型对吧?啊, 然后呢,我们定义这个 map 啊,再重温一下,我们这个 map 是用来干什么的?是用来存放我们便利过的元素啊,那接下来呢,我们是不是要便利这个数组了是吧啊呃,我们去便利这个数组, i 等于零, i 小于 number, number 词点 size i 加加。然后呢?呃,然后呢,我们是不是在便利中呢,我们要啊寻找我们要查询的值,例如说我们 便利在这里的时候,我们是不是应该查询元素七啊,我们是否便利过?因为七加二等于九吧,那么我 我们要查询的数值等于什么?我假设他等于 s, s 等于他给他减去 我们当前便利的元素,是吧?啊,这是我们要查询的这个值,然后我们就要在脉搏里边去查询了,我们想查我们想要得到这个值,有没有在脉搏里出现过啊?那在这里呢是要写一个 map 的一个便利方式,我在这里呢写的是类似于 c 加加的尾代码啊,大家理解这个意思就可以。 呃,我们去寻找 s, 是吧?那如果啊,我们想要查找的这个元素在 map 里出现过啊, 这就是在啊,这就是我们这个查找这个元素在 mac 里出现过的,类似于 c j 加的一种写法啊, 如果在我们这个 map 里出现过,此时我们是不是找到了啊?两个元素相加等于我们的这个他给他,那么我们是不是要返回对应的下标啊?那一个下标是什么?其中的一个下标,其中一个下标应该是 我们找到的这个元素他所存放的歪溜吧,是吧?是我们的其中的一个下标,还有一个下标是什么? 就是我们当前便利的元素,对吧?我们当前便利元素 i 啊,那此时我们就找到了啊,符合题目要求的一个结果机啊,那如果我们在 麦克里啊,没有找到啊,我们要就是我们想要查询的这个元素,那我们便利下一个元素时候,我们是不是要把已经便利过的元素加入到我们的麦克中啊,对吧,那么 我的 map 是不是应该在这里 insert 音色的什么? k 是什么? k 是元素吧,应该把 numbers 存进来, y 六是什么? y 六是下标吧,再把 i 存进来是吧?啊,我要把这个我们便利过的元素啊,所对应的 k 和 y 六存放到我们的麦克中,因为我们的麦克就是用来存我们便利过的元素的啊。 很多同学呢,看这道题目的时候,代码写到这里很懵逼啊,可能也明白,哎,我们需要用 map 存一下啊,把这个元素存一下,但是也不知道啊,这个麦克他究竟是用来做什么就知道啊,好像我应该存一下啊。然后很多同学呢,这道题目呢,因为这道题目的代码比较简短啊,他可能是背下来了, 就可能就把这个就给忘了啊,就是这个题目代码背着背着这个过程就给忘了,因为他没有理解 mat 是究竟用来做什么的。 那最后呢,如果这个便利结束,我们还没有找到,我们就 reten 一个空的一个集合就可以了。那其实这样呢,这道题目的代码我们就写完了啊,大家可以发现这个代码 并不复杂,对吧?啊,那我这里写的是类似于 cj 家的尾代码,那其他语言的版本,大家可以去代码所有录网站上哈西表章节可以找到啊,本期视频的文字 讲解版啊啊,里面有啊,各个语言的版本啊,可以在例扣上提交,便于运行的。那么本题代码讲完之后呢,大家再来回想一下啊,这道题目的一个啊,解题的一个过程啊,那其实这道题目呢? 呃,代码虽然简短,但是这道题目有啊四个重点啊,第一个重点就是这道题目我们为什么会想到使用哈西法, 对吧?啊,那第二个重点就是我们为什么要用 map 啊?那其实这里边还有一个小的一个问题,就是例如说使用 c 加加的话,为什么要使用按 oder map, 那,那使用其他语言的话,哦,这里边大家着重就要讲啊,我们本题为什么要使用麦克风,那第三个重点呢,就是我们的麦究竟是用来做什么的?在这道 题目里, map 作用究竟是来做什么的?这取决于我们写代码的思路啊,很多同学这行代码不理解就是不理解啊, map 在这道题目里边,它的作用啊,它是用来存放我们便利过的元素啊。那么 第四点呢,就是迈克里边的 k 是用来存什么的, y 六是用来存什么的啊,那把这四点都明确的话,这道题目我相信大家理解的就比较透彻了。那 呃,再去写这个代码的话啊,其实呢,大家就不用靠类似于背啊之类的啊,其实你理解了这个题目的啊,真正的就是解题方法之后呢,这个代码其实他就是一个 很自然而然的就可以写出来了啊。那么好了,这期视频呢,就给大家讲到这里,这里是代码孙杨璐,我是程序员卡尔,感谢大家的三连支持。