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

网站建设架构 服务器门户网站开发需求

网站建设架构 服务器,门户网站开发需求,成都自适应网站建设,网页ui设计模板题目描述#xff1a; 在 rows x cols 的网格上#xff0c;你从单元格 (rStart, cStart) 面朝东面开始。网格的西北角位于第一行第一列#xff0c;网格的东南角位于最后一行最后一列。你需要以顺时针按螺旋状行走#xff0c;访问此网格中的每个位置。每当移动到网格的边界之…题目描述 在 rows x cols 的网格上你从单元格 (rStart, cStart) 面朝东面开始。网格的西北角位于第一行第一列网格的东南角位于最后一行最后一列。你需要以顺时针按螺旋状行走访问此网格中的每个位置。每当移动到网格的边界之外时需要继续在网格之外行走但稍后可能会返回到网格边界。最终我们到过网格的所有 rows x cols 个空间。按照访问顺序返回表示网格位置的坐标列表。示例 1输入rows 1, cols 4, rStart 0, cStart 0 输出[[0,0],[0,1],[0,2],[0,3]] 示例 2输入rows 5, cols 6, rStart 1, cStart 4 输出[[1,4],[1,5],[2,5],[2,4],[2,3],[1,3],[0,3],[0,4],[0,5],[3,5],[3,4],[3,3],[3,2],[2,2],[1,2],[0,2],[4,5],[4,4],[4,3],[4,2],[4,1],[3,1],[2,1],[1,1],[0,1],[4,0],[3,0],[2,0],[1,0],[0,0]]提示1 rows, cols 100 0 rStart rows 0 cStart cols 算法一 思路 分析上图可以剖析出一个规律 每次循环向右向下移动相同步数向左向上移动相同步数并且向右向下一体向左向上一体这两个步数依次递增 所以我们可以改变步数与增量来实现循环 对于超范围的坐标进行判断即可 代码实现 /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/ # includestdlib.h void pushMatrix(int **matrix,int rows,int cols,int rStart,int cStart,int *index){//存入matrixif(rStartrows||rStart0)//行超范围return;else if(cStartcols||cStart0)//列超范围return;else{//存入matrix[*index][0]rStart;matrix[*index][1]cStart; (*index);} } int** spiralMatrixIII(int rows, int cols, int rStart, int cStart, int* returnSize, int** returnColumnSizes) {*returnSizerows*cols;//总空间*returnColumnSizes(int*)malloc(sizeof(int)*(*returnSize));int **matrix(int**)malloc(sizeof(int*)*(*returnSize));//开辟m*n行每行一个二维坐标(等同于两列)第一列为x第二列为yfor(int i0;irows*cols;i){matrix[i](int*)malloc(sizeof(int)*2);(*returnColumnSizes)[i]2;//列空间为2}int index0,dx1;//index--matrix下标//dx--循环次数int changeDx1;//changeDx--增量while(indexrows*cols){if(index0){//对第一次进行特殊处理pushMatrix(matrix,rows,cols,rStart,cStart,index);if(index*returnSize) return matrix;}for(int i0;idx;i){cStartchangeDx;//左右移动pushMatrix(matrix,rows,cols,rStart,cStart,index);}for(int i0;idx;i){rStartchangeDx;//上下移动pushMatrix(matrix,rows,cols,rStart,cStart,index);}changeDx-changeDx;//步长相反dx;//循环次数加一}return matrix; } 算法一直白代码 思路 将while里的两个for循环分为四个for循环对于上下左右直观易懂但是优化不明显 代码实现 void judge(int rStart,int cStart,int rows,int cols,int**arr,int* rest,int*p){if(rStartrows||rStart0)return;else if(cStartcols||cStart0)return;else{arr[*p][0]rStart;arr[(*p)][1]cStart;(*rest)--;} } int** spiralMatrixIII(int rows, int cols, int rStart, int cStart, int* returnSize, int** returnColumnSizes) {int restcols*rows;int**arrmalloc(sizeof(int*)*rest);*returnSizerest;*returnColumnSizesmalloc(sizeof(int)*rest);for(int i0;irest;i){arr[i]malloc(sizeof(int)*2);(*returnColumnSizes)[i]2;}for(int r1,p0;rest;r2){//因为每走两次走的距离增加一格走四次增加两格所以r2if(!p){ //对第一次走进行特殊处理judge(rStart,cStart,rows,cols,arr,rest,p);if(!rest) return arr;}for(int j0;jr;j)//右走(jr)judge(rStart,cStart,rows,cols,arr,rest,p);for(int j0;jr;j)//下走(jr)judge(rStart,cStart,rows,cols,arr,rest,p);//注意jr变为jr相当于走的距离增加一格for(int j0;jr;j)//左走(jr)judge(rStart,--cStart,rows,cols,arr,rest,p);for(int j0;jr;j)//上走(jr)judge(--rStart,cStart,rows,cols,arr,rest,p);}return arr; }
http://wiki.neutronadmin.com/news/267474/

相关文章:

  • 花市小说网站那里进网站主题包括
  • 微网站开发协议html简单网页代码课程表
  • 淮安网站建设工作室网站开发哪一种语言好
  • 石家庄免费网站设计网店代运营哪个好
  • 用ps怎么做网站网站开发公司需要那些硬件设备
  • 网站开发网页权限如何控制青海住房建设网站
  • 票务网站做酒店推荐的目的网站开发栏目需求1
  • 莒县网站制作wordpress忘记密码如何重新安装
  • 网站开发工程师工作描述wordpress 登录跳转
  • 龙岗开发公司网站建设wordpress编辑器分页
  • 深圳品牌营销型网站建设网站后台怎么修改代码
  • 能添加网站的导航有创意的网站开发
  • 中国建设银行网站-诚聘英才双流县规划建设局网站
  • p2p免费网站建设wordpress的标题字怎么变
  • 电子商务网站建设目标定制软件开发软件
  • 找兼职做网站的哪里找flask 网站开发
  • 收费图片网站网站推广工具有哪些
  • 站长百度国外域名网站
  • 各大门户网站有哪些潍坊网站制作
  • 网站开发个性化大型网站运营步骤
  • 学校网站策划书可以做语文阅读题的网站
  • 企业网站推广 知乎共享的网站备案
  • 浙江省建设会计协会网站首页中信建设有限责任公司中标公示
  • 网站设计好学吗怎么推广自己的微信号
  • 网站seo多少钱什么网站建设效果好
  • 东莞市建设工程检测中心网站小程序搭建系统
  • 网站多语言包制作图片的软件ppt
  • 素材网站设计模板ppth5怎么制作
  • 网站建设服务商有哪些如何设计网络
  • 建立大型网站wordpress大前端d84.1