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

注册商标费用多少钱绍兴seo管理

注册商标费用多少钱,绍兴seo管理,企业管理培训班,株洲论坛网文章目录 一、题目二、题解与代码三、神奇的BUG3.1 无法执行的 return 和 break 语句3.2 通过另一个 break 解决 一、题目 有一只跳蚤的家在数轴上的位置 x 处。请你帮助它从位置 0 出发,到达它的家。 跳蚤跳跃的规则如下: 它可以 往前 跳恰好 a 个位…

文章目录

  • 一、题目
  • 二、题解与代码
  • 三、神奇的BUG
    • 3.1 无法执行的 return 和 break 语句
    • 3.2 通过另一个 break 解决

一、题目

有一只跳蚤的家在数轴上的位置 x 处。请你帮助它从位置 0 出发,到达它的家。

跳蚤跳跃的规则如下:

  • 它可以 往前 跳恰好 a 个位置(即往右跳)。
  • 它可以 往后 跳恰好 b 个位置(即往左跳)。
  • 它不能 连续 往后跳 2 次。
  • 它不能跳到任何 forbidden 数组中的位置。
  • 跳蚤可以往前跳超过它的家的位置,但是它不能跳到负整数的位置。

给你一个整数数组 forbidden ,其中 forbidden[i] 是跳蚤不能跳到的位置,同时给你整数 abx ,请你返回跳蚤到家的最少跳跃次数。如果没有恰好到达 x 的可行方案,请你返回 -1

示例一:

输入:forbidden = [14,4,18,1,15], a = 3, b = 15, x = 9
输出:3
解释:往前跳 3 次(0 -> 3 -> 6 -> 9),跳蚤就到家了。

示例二:

输入:forbidden = [8,3,16,6,12,20], a = 15, b = 13, x = 11
输出:-1

示例三:

输入:forbidden = [1,6,2,14,5,17,4], a = 16, b = 9, x = 7
输出:2
解释:往前跳一次(0 -> 16),然后往回跳一次(16 -> 7),跳蚤就到家了。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-jumps-to-reach-home/
题目著作权归领扣网络所有。仅供个人学习,非商用。

二、题解与代码

class Solution {public int minimumJumps(int[] forbidden, int a, int b, int x) {Queue<int[]> queue = new ArrayDeque<int[]>();Set<Integer> visited = new HashSet<Integer>();queue.offer(new int[]{0, 1, 0});visited.add(0);int lower = 0, upper = Math.max(Arrays.stream(forbidden).max().getAsInt() + a, x) + b;Set<Integer> forbiddenSet = new HashSet<Integer>();for (int position : forbidden) {forbiddenSet.add(position);}while (!queue.isEmpty()) {int[] arr = queue.poll();int position = arr[0], direction = arr[1], step = arr[2];if (position == x) {return step;}int nextPosition = position + a;int nextDirection = 1;if (lower <= nextPosition && nextPosition <= upper && !visited.contains(nextPosition * nextDirection) && !forbiddenSet.contains(nextPosition)) {visited.add(nextPosition * nextDirection);queue.offer(new int[]{nextPosition, nextDirection, step + 1});}if (direction == 1) {nextPosition = position - b;nextDirection = -1;if (lower <= nextPosition && nextPosition <= upper && !visited.contains(nextPosition * nextDirection) && !forbiddenSet.contains(nextPosition)) {visited.add(nextPosition * nextDirection);queue.offer(new int[]{nextPosition, nextDirection, step + 1});}}}return -1;}
}

作者:力扣官方题解
链接:https://leetcode.cn/problems/minimum-jumps-to-reach-home/solutions/2414842/dao-jia-de-zui-shao-tiao-yue-ci-shu-by-l-sza1/
来源:力扣(LeetCode)
著作权归作者所有。仅供个人学习,非商用。

三、神奇的BUG

注:本部分仅阐述发现的 BUG,本部分代码并不是题解。

3.1 无法执行的 return 和 break 语句

  • 在 LeetCode 的官网上,下图红框内的 if 语句在判断结果为 true 的条件下不会执行代码块中的 return 语句!!!
  • 在下图中可以很清楚地看到 (tmp[0] == x) 在第 4 次循环时,输出的结果为 true ,但并没有执行 return 操作。
  • Solution 类的代码 直接复制 到 IDEA 中则可以执行!!!

在这里插入图片描述

  • IDEA 中的执行结果如下图所示:

在这里插入图片描述

  • return 换成 break 语句也同样无法执行
    在这里插入图片描述

大家有遇到过类似的 BUG 吗?还是说有什么我没注意到的问题呢?

3.2 通过另一个 break 解决

  • 在同层次的另一个 if 语句的代码块中加入 break 语句后,之前不能执行的 breakreturn 语句可以正常执行了!!!
    在这里插入图片描述
  • 严谨起见,我们用如下代码来查看到底是通过哪条语句的 break 退出循环的。
  • 显然是之前不能执行的那条。

在这里插入图片描述

  • 当然,新加入的 break 也是可执行的。

在这里插入图片描述

http://www.yayakq.cn/news/505859/

相关文章:

  • 本地常州微信网站建设dedecms 手机网站
  • 长沙需要做网站的企业wordpress获取热门文章
  • php网站插件删除或添加网站开发笔试题
  • 网站搜索 收录优化长沙网络推广外包
  • 网站开发流程图和新的网站建设技术方案
  • 风景区网站建设项目建设可行性南昌地宝网分类
  • 英语门户网站织梦源码网络营销服务有哪些
  • 成都市建设网扬尘监控网站学ui设计一般多少钱
  • 创建网站appwordpress被改密码忘记
  • 做网站需要提供什么条件新乡seo顾问
  • 中国交通建设网站智能云建站
  • 零起飞网站建设工作室网络营销概念是什么
  • 郑州电商网站开发wordpress原生app
  • 什么网站可以接单做h5电子商务网站
  • 国外常用视频网站tenor怎么设置网站会员注册系统下载
  • 微信公众号微网站 建设报价表网站建设专业名词解释网站
  • 昌乐营销型网站建设wordpress 用什么编辑器
  • 如何做个购物网站学校网站查询学历
  • ASP做旅游网站代码怎样做理财投资网站
  • 网站查询地址做网站跟网站设计的区别
  • 微信小程序源码网站黑龙江住房建设部网站
  • 镇江网站建设联系思创网站做关键词排名每天要做什么
  • 定制网站和模板网站有何区别工程建设期刊网站
  • 免费个人网站怎么建立网网站建设设计公司
  • 免费模板建设网站设计师服务平台素材下载
  • 怎么查网站备案接入商h5可以用什么网站做
  • 太原网站优化排名网页设计与制作教程机械工业出版社
  • 国外优秀网页设计作品东莞关键词排名seo
  • 寿光网站建设公司营销网站制作软件
  • 学设计的网站有哪些低代码开发平台免费开源