蓝桥与力扣刷题(蓝桥 螺旋折线)

devtools/2025/3/14 12:25:23/

题目:如下图所示的螺旋折线经过平面上所有整点恰好一次。

对于整点 (X,Y),我们定义它到原点的距离 dis(X,Y) 是从原点到 (X,Y) 的螺旋折线段的长度。

例如 dis(0,1)=3,dis(−2,−1)=9。

给出整点坐标 (X,Y),你能计算出 dis(X,Y) 吗?

输入描述

输入格式:

输入一行,X 和 Y ,−109≤X,Y≤109。

输出描述

输出 dis(X,Y)。

输入输出样例

示例

输入

0 1

输出

3

解题思路+代码:(引用题解区 作者:番了个薯  题解代码:番了个薯  题解图片:别优化了哥暴力就完了)

代码:

java">import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);long x = sc.nextLong();long y = sc.nextLong();long n = Math.max(Math.abs(x), Math.abs(y));long k = 4 * n * n; // (n * 2) * (n * 2)if (x >= y) {System.out.println(k + (Math.abs(n - x) + Math.abs(n - y)));} else {System.out.println(k - (Math.abs(n - x) + Math.abs(n - y)));}}
}

个人的解题思路+代码:(不知道为什么按照螺旋的方向和观察出的螺旋步长规律编写,只能对50%的用例)

代码:

java">import java.util.Scanner;public class Main {public static void main(String[] args) {/**思路:1.确定好螺旋折线的方向原点(0,0)开始2.螺旋方向:左 ->上->右 ->下3.螺旋步长规律:1 1 2 2 3 3 4 4*/Scanner scan = new Scanner(System.in);int targetX = scan.nextInt(); // 目标点 Xint targetY = scan.nextInt(); // 目标点 Yscan.close();// 方向数组(左、上、右、下)int[] dx = {-1, 0, 1, 0};int[] dy = {0, 1, 0, -1};int curX = 0, curY = 0; // 当前坐标int direction = 0; // 方向索引(0=左, 1=上, 2=右, 3=下)int stepLength = 1; // 当前步长int totalSteps = 0; // 记录总步数int stepChangeCount = 0; // 记录改变方向的次数while (true) {for (int i = 0; i < stepLength; i++) {curX += dx[direction];curY += dy[direction];totalSteps++;// 到达目标点if (curX == targetX && curY == targetY) {System.out.println(totalSteps);return;}}// 改变方向direction = (direction + 1) % 4;stepChangeCount++;// 每两次方向变换后,步长 +1if (stepChangeCount == 2) {stepLength++;stepChangeCount = 0;}}}
}

总结:在解这道题时我开始认为知道螺旋的方向和螺旋的步长规律就可以很好地解答该题了,但是出乎我意料的是在提交了多次代码之后所对的用例只有50%,看到有很多用例上面是运行超时,于是我使用ai修改还是会报50%用例不通过。(这里作为个人的思路,如果有人能使用这种方法进行解答且用例全过的话,可以发在评论区供大家参考,谢谢~)。 因此,我去题解区看了大佬的解题思路后有点小受震撼,用层级的坐标所在的最大的那个层数,(n×2)×(n×2)是求出每层(螺旋层)的右上角的数(原来这样也可以解答!!!),大家也可以琢磨一下大佬的解题思路和代码,领会这种方法解答该题的妙处。


http://www.ppmy.cn/devtools/167021.html

相关文章

【医院绩效管理专题】8.医院绩效数据的收集与整理方法:洞察现状,引领未来

医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、引言 在当今医疗行业竞争日益激烈的背景下,医院绩效管理已成为提升医疗服务质量、优化运营效率、增强综合竞争力的关键因素。而绩效数据的收集与整理作为绩效管理的基础环节,其科学性、准确性和完整性直…

ResNet改进(4):添加Inception 结构

1.Inception 结构 Inception 结构是由 Google 提出的经典卷积神经网络架构&#xff0c;首次出现在 2014 年的论文《Going Deeper with Convolutions》中&#xff0c;并在 ImageNet 图像分类竞赛中取得了优异成绩。Inception 结构的目标是通过多尺度卷积和高效计算来提升网络性…

《苍穹外卖》SpringBoot后端开发项目核心知识点与常见问题整理(DAY1 to DAY3)

目录 一、在本地部署并启动Nginx服务1. 解压Nginx压缩包2. 启动Nginx服务3. 验证Nginx是否启动成功&#xff1a; 二、导入接口文档1. 黑马程序员提供的YApi平台2. YApi Pro平台3. 推荐工具&#xff1a;Apifox 三、Swagger1. 常用注解1.1 Api与ApiModel1.2 ApiModelProperty与Ap…

e2studio开发RA4L1(1)---开发板测试

e2studio开发RA4L1.1-- 开发板测试 概述视频教学样品申请产品特性参考程序源码下载硬件准备新建工程工程模板保存工程路径芯片配置工程模板选择时钟设置GPIO口配置UART配置UART属性配置设置e2studio堆栈e2studio的重定向printf设置主程序 概述 RA4L1 评估套件可以使用户能够无…

计算机视觉算法实战——手势识别(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域简介&#xff1a;手势识别的价值与挑战 手势识别是连接人类自然行为与数字世界的核心交互技术&#xff0c;在智能设备控制、…

docker安装及使用介绍

文章目录 docker安装及使用安装 dockerdocker 常用命令docker 基本命令容器镜像卷网络命令Docker ComposeDocker 系统命令 在docker中安装ROS2 humble拉取 ROS 2 Docker 镜像运行 ROS 2 Docker 容器配置 ROS 2 环境接收外部 ROS 2 话题注意事项 ros1 和docker ros2通信使用 ros…

【贪心算法5】

力扣738.单调递增的数字 链接: link 思路 遇到c[i]>c[i1]则c[i]–,然后就是给c[i1]赋值‘9’&#xff1b;需要注意的是star初值问题&#xff0c;可见注释部分。 class Solution {public int monotoneIncreasingDigits(int n) {String s String.valueOf(n);char[] c s.…

接口测试笔记

7、Mock接口框架 Mock介绍 mock用来模拟接口&#xff0c;这里mock用的是moco框架&#xff0c;moco框架是github上的一个开源项目&#xff0c;可模拟HTTP、HTTPS、Socket协议。 工作原理 Moco的启动及第一个Demo 创建配置文件startup.json启动服务器 java -jar moco-runner…