做seo推广公司网站/免费b站在线观看人数在哪里找到

做seo推广公司网站,免费b站在线观看人数在哪里找到,做网站手机验证收费吗,企业免费建站软件一、求解方法 (1)按点模拟路径 在原有坐标的基准上,叠加 横纵坐标 的变化值,求出下一位置,并按题完成要求。但需注意转角的时机判断,特别是最后即将返回上一出发点的位置。 (2)按层…

一、求解方法 

(1)按点模拟路径

        在原有坐标的基准上,叠加 横纵坐标 的变化值,求出下一位置,并按题完成要求。但需注意转角的时机判断,特别是最后即将返回上一出发点的位置。

(2)按层模拟路径

        在原有的形状基础上,画出 上下左右 四根边界线,按照顺序完成画圈。但需要关注单行或单列可能存在重复的情况,因此需在操作 边界线时加上判定条件。

(3)心路历程

        最开始掌握的是 Carl 教的循环画框类的思路,但是它的应用是在方形样式,其中的 offset 和 中间元素处理对于方形图案比较好处理,但是针对矩形样式,我真的不知道要怎么改了。后改学其他思路,也就是上述两种。

二、推荐例题

(1)方形样式的螺旋矩阵

        59. 螺旋矩阵 II

方法1:点模拟

class Solution {public int[][] generateMatrix(int n) {    int curNum = 1;int maxNum = n * n;int curRow = 0;int curCol = 0;int dirIndex = 0;int[][] dirs = {{0,1}, {1,0}, {0,-1}, {-1,0}};int[][] res = new int[n][n];while(curNum <= maxNum){res[curRow][curCol] = curNum++;//判定后续位置是否越界int nextRow = curRow + dirs[dirIndex][0];int nextCol = curCol + dirs[dirIndex][1];//需要加一个res[nextRow][nextCol] != 0 因为走了一圈之后就回到了原点,需要避免回原点,而是调整方向//比如三阶矩阵中的最后9,若不调整方向,则会放到原点处if(nextRow < 0 || nextRow > n-1 || nextCol < 0 || nextCol > n-1 || res[nextRow][nextCol] != 0){dirIndex = (dirIndex+1) % 4;}curRow = curRow + dirs[dirIndex][0];curCol = curCol + dirs[dirIndex][1];}return res;}
}

方法2:层模拟

class Solution {public int[][] generateMatrix(int n) {    int left = 0;int right = n-1;int top = 0;int bottom = n-1;int num = 1;int[][] res = new int[n][n];while(left <= right && top <= bottom){//上:从左往右-----j 从 left ---> rightfor(int j = left; j <= right; j++){res[top][j] = num++;}top++;//右:从上到下-----i 从 top ---> bottomfor(int i = top; i <= bottom; i++){res[i][right] = num++;}right--;if(top <= bottom){//下:从右到左-----j 从 right ---> leftfor(int j = right; j >= left; j--){res[bottom][j] = num++;}bottom--;}if(left <= right){//左:从下到上-----i 从 bottom ---> topfor(int i = bottom; i >= top; i--){res[i][left] = num++;}left++;}}return res;}
}

方法3:“循环画框”

class Solution {public int[][] generateMatrix(int n) {    int loopCur = 1;        //当前所处的圈数int loopCnt = n / 2;    //所需绘制的完整圈数int xStart = 0;         //横坐标的开始坐标int yStart = 0;         //纵坐标的开始坐标int offset = 1;         //当前绘制圈的偏置值int num =  1;           //当前绘制的数字int i,j;                //绘制地图用的横纵坐标int[][] res = new int[n][n];while(loopCur <= loopCnt){//上:从左往右-----j 从 yStart ---> n-offsetfor(j = yStart; j < n-offset; j++){res[xStart][j] = num++;}//右:从上到下-----i 从 xStart ---> n-offsetfor(i = xStart; i < n-offset; i++){res[i][j] = num++;}//下:从右到左-----j 递减到 yStart+1for(; j > yStart; j--){res[i][j] = num++;}//左:从下到上-----i 递减到 xStart+1for(; i > xStart; i--){res[i][j] = num++;}offset++;   //调整偏置值loopCur++;xStart++;yStart++;}if(1 == n%2){res[xStart][yStart] = num;}return res;}
}

 (2)矩形样式的螺旋矩阵

        54.螺旋矩阵

方法1:点模拟

class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res = new ArrayList<Integer>();if(matrix == null){return res;}int rows = matrix.length;int cols = matrix[0].length;int cnt = rows * cols;if (rows == 0 || cols == 0) {return res;}int curRow = 0;int curCol = 0;int dirIndex = 0;int[][] dirs = {{0,1}, {1,0}, {0,-1}, {-1,0}};boolean[][] visited = new boolean[rows][cols];while(cnt > 0){res.add(matrix[curRow][curCol]);visited[curRow][curCol] = true;//判定后续位置是否越界int nextRow = curRow + dirs[dirIndex][0];int nextCol = curCol + dirs[dirIndex][1];//需要加一个res[nextRow][nextCol] != 0 因为走了一圈之后就回到了原点,需要避免回原点,而是调整方向//比如三阶矩阵中的最后9,若不调整方向,则会放到原点处if(nextRow < 0 || nextRow > rows-1 || nextCol < 0 || nextCol > cols-1 || visited[nextRow][nextCol] != false){dirIndex = (dirIndex+1) % 4;}curRow = curRow + dirs[dirIndex][0];curCol = curCol + dirs[dirIndex][1];cnt--;}return res;}
}

方法2:层模拟

class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res = new ArrayList<Integer>();if(matrix == null){return res;}int rows = matrix.length;int cols = matrix[0].length;if (rows == 0 || cols == 0) {return res;}int top = 0;int bottom = rows -1;int left = 0;int right = cols -1;while(top <= bottom && left <= right){//上:从左到右for(int j = left; j <= right; j++){res.add(matrix[top][j]);}top++;//右:从上到下for(int i = top; i <= bottom; i++){res.add(matrix[i][right]);}right--;//下:从右到左if(top <= bottom){  //若不判断,遇见单行,则会重复处理for(int j = right; j >= left;j--){res.add(matrix[bottom][j]);}}bottom--;//左:从下到上if(left <= right){  //若不判断,遇见单列,则会重复处理for(int i = bottom; i >= top; i--){res.add(matrix[i][left]);}}left++;}return res;}
}

方法3: “循环画框”--错误代码演示,没改出来

class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res = new ArrayList<Integer>();int rows = matrix.length;int cols = matrix[0].length;int loopCur = 1;int loopCnt = rows/2 + 1;    //为便捷处理中心区域的多个数据int xStart = 0;int yStart = 0;int offset = 1;//因为增加了圈数,导致单行的矩阵会重复打印if(rows == 1){for(int temp = 0; temp < cols; temp++){res.add(Integer.valueOf(matrix[0][temp]));}return res;}//因为增加了圈数,导致单列的矩阵会重复打印if(cols == 1){for(int temp = 0; temp < rows; temp++){res.add(Integer.valueOf(matrix[temp][0]));}return res;}int i,j;while(loopCur <= loopCnt){//上:从左到右for(j = yStart; j < cols-offset; j++){res.add(matrix[xStart][j]); }//右:从上到下for(i = xStart; i < rows-offset; i++){res.add(matrix[i][j]);}//下:从右到左for(; j > yStart; j--){res.add(matrix[i][j]);}//左:从下到上for(; i > xStart; i--){res.add(matrix[i][j]);}offset++;loopCur++;xStart++;yStart++;}if(rows == cols && rows%2 ==1){res.add(matrix[xStart-1][yStart-1]);}return res;}
}

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

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

相关文章

从Manus到OpenManus:AI智能体技术如何重塑未来生活场景?

从Manus到OpenManus&#xff1a;AI智能体技术如何重塑未来生活场景&#xff1f; 一、现状&#xff1a;AI智能体技术面临的三大核心矛盾 &#xff08;通过分析用户高频痛点与市场反馈提炼&#xff09; 能力与门槛的失衡 Manus展示的复杂任务处理能力&#xff08;如股票分析、代…

Mybatis源码 插件机制

简介 插件是一种常见的扩展方式&#xff0c;大多数开源框架也都支持用户通过添加自定义插件的方式来扩展或者改变原有的功能&#xff0c;MyBatis中也提供的有插件&#xff0c;虽然叫插件&#xff0c;但是实际上是通过拦截器(Interceptor)实现的&#xff0c;在MyBatis的插件模块…

全球化2.0 | ZStack举办香港Partner Day,推动AIOS智塔+DeepSeek海外实践

2025年3月21日&#xff0c;云轴科技ZStack在香港成功举办了主题为“ZStack AIOS 智塔与 DeepSeek 私有化方案介绍及企业应用落地实践”的 Partner Day 活动。此次活动吸引了众多海外合作伙伴&#xff0c;共同探讨 AI Infra 平台在企业私有化 AI 中的应用与价值闭环。 ZStack CT…

【C++初阶】第12课—list

文章目录 1. list的构造2. list迭代器的常见接口2.1 list遍历的迭代器接口2.2 list修改数据的迭代器接口2.3 list排序、逆序、合并相关操作的成员函数 3. 模拟实现list3.1 模拟实现list的构造3.2 模拟实现list的尾插3.3 模拟实现迭代器iterator3.4 模拟实现list的插入删除3.5 模…

谷粒微服务高级篇学习笔记整理---异步线程池

多线程回顾 多线程实现的4种方式 1. 继承 Thread 类 通过继承 Thread 类并重写 run() 方法实现多线程。 public class MyThread extends Thread {Overridepublic void run() {System.out.println("线程运行: " Thread.currentThread().getName());} }// 使用 pub…

Windows学习笔记(4)关于MITRE

基本术语 APT&#xff08;威胁组&#xff0c;高级持续威胁&#xff09; TTP&#xff08;攻击目的技术过程&#xff0c;战术技术和程序&#xff09; ATT&CK框架 网站 https://attack.mitre.org/ CAR知识库 MITRE Engage MITRE D3FEND 网址 https://d3fend.mitre.org/

Share01-WinCC文件越用越大?

为什么你们的经典WinCC项目在客户电脑上运行的越来越慢&#xff1f;为什么查询一个历史曲线慢的要死&#xff1f;为什么重启一下电脑画面都要怀疑人生&#xff1f;具体原因可能多种多样&#xff0c;但是极大可能是您的数据管理设置欠佳&#xff0c;那么闲话少叙&#xff0c;和小…

基于改进粒子群算法的多目标分布式电源选址定容规划(附带Matlab代码)

通过分析分布式电源对配电网的影响&#xff0c;以有功功率损耗、电压质量及分布式电源总容量为优化目标&#xff0c;基于模糊理论建立了分布式电源在配电网中选址定容的多目标优化模型&#xff0c;并提出了一种改进粒子群算法进行求解。在算例仿真中&#xff0c;基于IEEE-14标准…

雨云云应用测评!内测持续进行中!

大家好&#xff0c;时隔一个月&#xff0c;我们又见面了&#xff01; 最近&#xff0c;雨云推出了新型云应用&#xff08;RCA&#xff0c;Rainyun Cloud Application&#xff09;。 通过云应用&#xff0c;你可以快速创建可以外部访问的应用&#xff0c;采用全新的面板和dock…

【算法day25】 最长有效括号——给你一个只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

32. 最长有效括号 给你一个只包含 ‘(’ 和 ‘)’ 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 https://leetcode.cn/problems/longest-valid-parentheses/ 2.方法二&#xff1a;栈 class Solution { public:int longestValid…

C++编程学习笔记:函数相关特性、引用与编译流程

目录 一、函数的缺省参数 &#xff08;一&#xff09;全缺省参数 &#xff08;二&#xff09;半缺省参数 二、函数重载 &#xff08;一&#xff09;参数类型不同 &#xff08;二&#xff09;参数个数不同 &#xff08;三&#xff09;参数类型顺序不同 三、引用相关问题…

RPCGC阅读

24年的MM 创新 现有点云压缩工作主要集中在保真度优化上。 而在实际应用中&#xff0c;压缩的目的是促进机器分析。例如&#xff0c;在自动驾驶中&#xff0c;有损压缩会显着丢失户外场景的详细信息。在三维重建中&#xff0c;压缩过程也会导致场景数据中语义信息(Contour)的…

645.错误的集合

import java.util.HashMap; import java.util.Map;/*** program: Test* description: 645 错误的集合* author: gyf* create: 2025-03-23 10:22**/ public class Test {public static void main(String[] args) {}public static int[] findErrorNums(int[] nums) {int[] arr n…

一周学会Flask3 Python Web开发-SQLAlchemy数据迁移migrate

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 模型类(表)不是一成不变的&#xff0c;当你添加了新的模型类&#xff0c;或是在模型类中添加了新的字段&#xff0c;甚至是修改…

Python练习之抽奖界面

前言 一、代码整体架构分析 1、数据层 (Model) 2、控制层 (Controller) 3、视图层 (View) 二、核心功能实现详解 1、 文件导入功能 1.1、实现逻辑 1.2、代码涉及知识点讲解 1.2.1、wildcard 1.2.2、wx.FileDialog 1.2.3、dlg.ShowModal() 2、抽奖动画控制 1.1、…

【云原生】docker 搭建单机PostgreSQL操作详解

目录 一、前言 二、前置准备 2.1 服务器环境 2.2 docker环境 三、docker安装PostgreSQL过程 3.1 获取PostgreSQL镜像 3.2 启动容器 3.2.1 创建数据卷目录 3.2.2 启动pg容器 3.3 客户端测试连接数据库 四、创建数据库与授权 4.1 进入PG容器 4.2 PG常用操作命令 4.2…

算法为舟 思想为楫:AI时代,创作何为?

在科技浪潮汹涌澎湃的当下,AI技术以前所未有的态势席卷各个领域,创作领域亦未能幸免。当生成式AI展现出在剧本撰写、诗歌创作、图像设计等方面的惊人能力时,人类创作者仿佛置身于文明演化的十字路口,迷茫与困惑交织,兴奋与担忧并存。在AI时代,创作究竟该何去何从?这不仅…

JAVA的内存图理解

目录 一、方法区1、类常量池2、静态常量池3、方法区过程 二、栈三、堆1、字符常量池2、堆内存图的绘制 java中内存可以分为 方法区、 堆、 栈、 程序计数器、 本地方法栈&#xff0c;其中比较中重要的是方法区、堆、栈。 一、方法区 1.方法区&#xff08;Method Area&…

医疗CMS高效管理:简化更新维护流程

内容概要 医疗行业内容管理系统&#xff08;CMS&#xff09;的核心价值在于应对医疗信息管理的多维复杂性。面对诊疗指南的动态更新、科研数据的快速迭代以及多机构协作需求&#xff0c;传统管理模式往往面临效率瓶颈与合规风险。现代化医疗CMS通过构建结构化权限管理矩阵&…

低功耗LPWAN模块开发指南:远距离无线通信与边缘计算融合实战‌

在远程资产追踪、野外环境监测等场景中&#xff0c;稳定可靠的长距离通信与超低功耗是系统设计的核心挑战。eFish-SBC-RK3576通过 ‌原生双UART接口 USB OTG扩展能力‌ &#xff0c;可无缝集成主流LPWAN模组&#xff08;LoRa/NB-IoT&#xff09;&#xff0c;实现“数据采集-边…