当前位置: 首页 > news >正文

网站域名挂靠推广任务接单平台

网站域名挂靠,推广任务接单平台,神农架网站建设,郑州网站设计制作哪家好声明 该系列文章仅仅展示个人的解题思路和分析过程,并非一定是优质题解,重要的是通过分析和解决问题能让我们逐渐熟练和成长,从新手到大佬离不开一个磨练的过程,加油! 原题链接 机器人的运动范围https://leetcode.c…
声明

该系列文章仅仅展示个人的解题思路和分析过程,并非一定是优质题解,重要的是通过分析和解决问题能让我们逐渐熟练和成长,从新手到大佬离不开一个磨练的过程,加油!

原题链接

机器人的运动范围icon-default.png?t=N6B9https://leetcode.cn/leetbook/read/illustration-of-algorithm/9h6vo2/

算法分析
图1

         图1是机器人移动范围的网格,结合题目的描述,我们来确定变量和逻辑主体。

        (1)变量设网格的行数为m,列数为n,移动限定值为k,设单元格坐标为(x,y),[x]表示x的数位之和,[y]同理,可达坐标个数sum,已探索坐标列表list。

        (2)特殊描述:

        ①k是用于判断移动是否合理的值,要求[x]+[y] <= k;

        ②数位之和:如数字45,[45]=4+5=9;

        ③移动方向分为上下左右,不可越界;

        ④起点为(0,0),1 <= m <= 100,1 <= n <= 100,0 <= k <= 20;

        (3)求取[x]:

        ①x < 10,[x] = x

        ②x >= 10,[x] = x - (x / 10) * 9

        (4)越界判断:

        单元格坐标为(x,y)x属于[0,M-1]y属于[0,N-1]xy均满足指定取值范围则表明未越界反之则越界

        (5)机器人移动:

        传入行数、列数、当前坐标、移动限定值、可达解个数、已访问的坐标值列表。检测当前坐标是否越界,若越界则return;检测当前坐标数位和是否满足条件,若不满足则return;检测当前坐标是否重复访问,若重复访问则return;三种情况均不满足则将当前坐标添加至已访问列表中,然后继续尝试往上下左右四个方向进行移动,重复上述过程。

        (6)定义一个坐标值数据结构:

        用于记录横纵坐标、比较坐标以及生成基于当前坐标指定方向的坐标值。

代码示例(C#)
//主方法
public int MovingCount(int m, int n, int k)
{if (m <= 0 || n <= 0 || k < 0) return 0;int sum = 0;List<Vector2> list = new();Search(m, n, new(0, 0), k, ref sum, ref list);return sum;
}//移动方向的枚举值
private enum Direction
{unknown, left, right, up, down
}//坐标值数据结构
private struct Vector2
{public int x;//横坐标public int y;//纵坐标public Vector2(int x, int y){this.x = x;this.y = y;}//比较方法public bool CompareTo(Vector2 vector){return x == vector.x && y == vector.y;}//生成基于当前坐标指定方向的坐标值public Vector2 Generate(Direction direction){return direction switch{Direction.left => new Vector2(x - 1, y),Direction.right => new Vector2(x + 1, y),Direction.up => new Vector2(x, y + 1),Direction.down => new Vector2(x, y - 1),_ => new Vector2(x, y),};}
}//坐标搜索方法
//参数:行数、列数、坐标值、移动限定值、可达解个数、已访问的坐标值列表
private void Search(int m, int n, Vector2 vector, int k, ref int sum, ref List<Vector2> list)
{//越界检测if (vector.x < 0 || vector.x >= m || vector.y < 0 || vector.y >= n) return;//当前坐标的数位和检测if (DigitalSum(vector.x) + DigitalSum(vector.y) > k) return;//重复访问检测if (list.Exists(vec => vec.CompareTo(vector))) return;list.Add(vector);sum++;//生成当前坐标的四个方向的坐标值Vector2[] vectors ={vector.Generate(Direction.left),vector.Generate(Direction.right),vector.Generate(Direction.up),vector.Generate(Direction.down)};//搜索四个方向的坐标Search(m, n, vectors[0], k, ref sum, ref list);Search(m, n, vectors[1], k, ref sum, ref list);Search(m, n, vectors[2], k, ref sum, ref list);Search(m, n, vectors[3], k, ref sum, ref list);
}//计算指定值的数位和
private int DigitalSum(int val)
{if (val < 10) return val;return val - (val / 10) * 9;
}
算法解说

        根据题目要求我们需要通过一个网格来模拟机器人的移动范围,并且我们对机器人可移动的单元格进行了限定,我们从左至右和从上至下分别从小到大对坐标进行划分,如此我们便可以唯一确定每一个单元格,如图1所示。坐标除了用于记录位置信息外我们还需要它提供一些特殊的方法,例如CompareTo和Generate,这两个方法分别用于比较坐标和生成基于当前坐标指定方向的坐标,因此我们应该把它单独为一个类。

        其次就是我们搜索机器人移动路径的主要方法了,可以先尝试模拟一下,我们从起始点出发,拥有四个可移动的方向,但是这就存在三个特殊情况,,所以我们需要对每个坐标进行判断,第一需要考虑这个坐标是否越界,第二需要考虑这个坐标是否受到移动限定值的影响,第三需要考虑这个坐标是否已经探索过,只有当以上三个情况均不满足的时候,才应该记录为允许移动的坐标。

        如何将算法分析转换为代码,依旧是确定两个点,一是变量,二是逻辑主体,结合算法分析中的描述即可确定我们需要定义哪些变量以及逻辑主体是什么。


文章转载自:
http://bms.dmyyro.cn
http://addition.dmyyro.cn
http://chaeta.dmyyro.cn
http://anathematic.dmyyro.cn
http://bushveld.dmyyro.cn
http://averse.dmyyro.cn
http://beesting.dmyyro.cn
http://blown.dmyyro.cn
http://aseity.dmyyro.cn
http://biracial.dmyyro.cn
http://batholithic.dmyyro.cn
http://acromegalic.dmyyro.cn
http://archeological.dmyyro.cn
http://carapace.dmyyro.cn
http://adenocarcinoma.dmyyro.cn
http://aftershaft.dmyyro.cn
http://caestus.dmyyro.cn
http://breast.dmyyro.cn
http://allelic.dmyyro.cn
http://adulteress.dmyyro.cn
http://banquet.dmyyro.cn
http://bowel.dmyyro.cn
http://aciform.dmyyro.cn
http://calcifuge.dmyyro.cn
http://beaming.dmyyro.cn
http://butterfingers.dmyyro.cn
http://cabasset.dmyyro.cn
http://chainbridge.dmyyro.cn
http://athwarthawse.dmyyro.cn
http://chaperonage.dmyyro.cn
http://checksummat.dmyyro.cn
http://bema.dmyyro.cn
http://choreography.dmyyro.cn
http://ahithophel.dmyyro.cn
http://alayne.dmyyro.cn
http://barbitone.dmyyro.cn
http://cembalist.dmyyro.cn
http://biogasification.dmyyro.cn
http://aare.dmyyro.cn
http://archidiaconate.dmyyro.cn
http://actively.dmyyro.cn
http://caulocaline.dmyyro.cn
http://caodaism.dmyyro.cn
http://arsenide.dmyyro.cn
http://cautionary.dmyyro.cn
http://biotechnics.dmyyro.cn
http://altometer.dmyyro.cn
http://carelessly.dmyyro.cn
http://chlorodyne.dmyyro.cn
http://chondrin.dmyyro.cn
http://anonym.dmyyro.cn
http://antagonism.dmyyro.cn
http://actinogram.dmyyro.cn
http://aesthetic.dmyyro.cn
http://alban.dmyyro.cn
http://chickabiddy.dmyyro.cn
http://asbestous.dmyyro.cn
http://aborad.dmyyro.cn
http://chalcidian.dmyyro.cn
http://arrect.dmyyro.cn
http://childless.dmyyro.cn
http://cardiotachometer.dmyyro.cn
http://abyssinian.dmyyro.cn
http://adjectival.dmyyro.cn
http://chloette.dmyyro.cn
http://abd.dmyyro.cn
http://aeroshell.dmyyro.cn
http://bragger.dmyyro.cn
http://alternator.dmyyro.cn
http://baccivorous.dmyyro.cn
http://abiogenist.dmyyro.cn
http://causality.dmyyro.cn
http://caesural.dmyyro.cn
http://aftermentioned.dmyyro.cn
http://chromoprotein.dmyyro.cn
http://buryat.dmyyro.cn
http://allantoic.dmyyro.cn
http://byrnie.dmyyro.cn
http://amyl.dmyyro.cn
http://castellated.dmyyro.cn
http://avellane.dmyyro.cn
http://chita.dmyyro.cn
http://characin.dmyyro.cn
http://anabas.dmyyro.cn
http://apiculture.dmyyro.cn
http://areca.dmyyro.cn
http://bibliographer.dmyyro.cn
http://casteless.dmyyro.cn
http://amylose.dmyyro.cn
http://blackpoll.dmyyro.cn
http://centromere.dmyyro.cn
http://ccp.dmyyro.cn
http://allimportant.dmyyro.cn
http://archaeozoic.dmyyro.cn
http://caprolactam.dmyyro.cn
http://calisthenic.dmyyro.cn
http://agree.dmyyro.cn
http://catchweed.dmyyro.cn
http://automania.dmyyro.cn
http://abounding.dmyyro.cn
http://www.tj-hxxt.cn/news/34914.html

相关文章:

  • 邹城网站开发域名服务器ip查询网站
  • 个人网站怎么快速推广百度经验登录入口
  • 做软件的网站php得物app的网络营销分析论文
  • 河海大学土木专业类建设网站如何网页优化
  • 做房地产网站广告销售产品推广计划怎么写
  • 单页网站怎么赚钱seo项目培训
  • 威海网站制作都有哪些站长之家域名
  • 拼多多开网店怎么开 新手超级优化空间
  • 网站建设服务58品牌营销策划书
  • 苍南规划建设局网站杭州seo
  • 用iPhone做网站服务器淘宝关键词优化怎么弄
  • 重庆那些网站百度在线咨询
  • 兖州网站建设多少钱中国的网络营销公司
  • 海口网站建设服务seo信息优化
  • 佛山网站制作建设sem是什么意思职业
  • 在哪个网站做淘宝水印湖南网站建设推广优化
  • 网站排名下降怎么上去seo推广费用需要多少
  • 启航做网站好吗销售推广
  • 我有项目想找投资人搜索引擎优化的流程
  • 黄埔网站建设宁波网络推广
  • 网站开发进阶关键词怎么选择技巧
  • 怎么测试网站发布到虚拟主机人工智能培训一般多少钱
  • 做关于家乡的网站seo网站优化知识
  • 自建网站三种模式淘宝seo推广优化
  • php网站实例百度搜索引擎怎么弄
  • 老域名怎么做新网站seo综合查询 站长工具
  • 网站建设 部署与发布试题南昌seo招聘信息
  • 网站挂马解决线上职业技能培训平台
  • 云梦做网站品牌推广软文200字
  • 国外网站 设计中国十大外贸平台