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

如何分析网站用户体验app平台需要多少钱

如何分析网站用户体验,app平台需要多少钱,企业网站设计方案,国内时事新闻优质博文:IT-BLOG-CN 一、题目 给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2&#xf…

优质博文:IT-BLOG-CN

一、题目

给你一个mn列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。

示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]

示例 2:

输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]

m == matrix.length
n == matrix[i].length
1 <= m, n <= 10
-100 <= matrix[i][j] <= 100

二、代码

【1】模拟: 由于是旋转矩阵,所以我们创建一个旋转二维坐标 int[][] coordinate = { {0,1},{1,0},{0,-1},{-1,0} },第一次旋转前row + 0, column + 1,所以取coordinate[0],第一次旋转后row + 1, column + 0所以取coordinate[1]依次类推。判断路径是否进入之前访问过的位置需要使用一个与输入矩阵大小相同的辅助矩阵visiters,其中的每个元素表示该位置是否被访问过。当一个元素被访问时,将visited中的对应位置的元素设为已访问。

class Solution {public List<Integer> spiralOrder(int[][] matrix) {//思路: 1、定义一个顺时针坐标 coordinate,进行下表的加减;//       2、创建一个大小相同的二位数组,表示是否访问过;//       3、当满足旋转条件时,获取顺序坐标,进行加减;List<Integer> res = new ArrayList();if (matrix.length == 0) {return res;}// 获取矩阵的行和列int rows = matrix.length, columns = matrix[0].length;// 坐标int[][] coordinate = {{0,1},{1,0},{0,-1},{-1,0}};boolean[][] visiters = new boolean[rows][columns];// 获取总的旋转次数int total = rows * columns;// 定义一个坐标的小标,表示什么时候进行旋转,和行和列的下标;int coorIndex = 0, row = 0, column = 0;for (int i = 0; i < total; i++) {// 初始化第一个数据,并修改 visiters中的属性res.add(matrix[row][column]);visiters[row][column] = true;// 获取下一个row和column,并判断是否满足旋转条件int nextRow = coordinate[coorIndex][0] + row, nextColumn = coordinate[coorIndex][1] + column;if (nextRow < 0 || nextRow >= rows || nextColumn < 0 || nextColumn >= columns || visiters[nextRow][nextColumn]) {// 因为不止旋转依次,所以不能只+1coorIndex = (coorIndex + 1) % 4;nextRow = coordinate[coorIndex][0] + row;nextColumn = coordinate[coorIndex][1] + column;}row = nextRow;column = nextColumn;}return res;}
}

时间复杂度: O(mn)其中mn分别是输入矩阵的行数和列数。矩阵中的每个元素都要被访问一次。
空间复杂度: O(mn)需要创建一个大小为m×n的矩阵visited记录每个位置是否被访问过。

【2】按层模拟: 可以将矩阵看成若干层,首先输出最外层的元素,其次输出次外层的元素,直到输出最内层的元素。定义矩阵的第k层是到最近边界距离为k的所有顶点。例如,下图矩阵最外层元素都是第1层,次外层元素都是第2层,剩下的元素都是第3层。

[[1, 1, 1, 1, 1, 1, 1],[1, 2, 2, 2, 2, 2, 1],[1, 2, 3, 3, 3, 2, 1],[1, 2, 2, 2, 2, 2, 1],[1, 1, 1, 1, 1, 1, 1]]

对于每层,从左上方开始以顺时针的顺序遍历所有元素。假设当前层的左上角位于(top,left),右下角位于(bottom,right),按照如下顺序遍历当前层的元素。
【1】从左到右遍历上侧元素,依次为(top,left)(top,right)
【2】从上到下遍历右侧元素,依次为(top+1,right)(bottom,right)
【3】如果left<righttop<bottom,则从右到左遍历下侧元素,依次为(bottom,right−1)(bottom,left+1),以及从下到上遍历左侧元素,依次为(bottom,left)(top+1,left)

遍历完当前层的元素之后,将lefttop分别增加1,将rightbottom分别减少1,进入下一层继续遍历,直到遍历完所有元素为止。

class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> order = new ArrayList<Integer>();if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {return order;}int rows = matrix.length, columns = matrix[0].length;int left = 0, right = columns - 1, top = 0, bottom = rows - 1;while (left <= right && top <= bottom) {for (int column = left; column <= right; column++) {order.add(matrix[top][column]);}for (int row = top + 1; row <= bottom; row++) {order.add(matrix[row][right]);}if (left < right && top < bottom) {for (int column = right - 1; column > left; column--) {order.add(matrix[bottom][column]);}for (int row = bottom; row > top; row--) {order.add(matrix[row][left]);}}left++;right--;top++;bottom--;}return order;}
}

时间复杂度: O(mn)其中mn分别是输入矩阵的行数和列数。矩阵中的每个元素都要被访问一次。
空间复杂度: O(1)除了输出数组以外,空间复杂度是常数。

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

相关文章:

  • 做网站教程pdf奔驰宝马游戏网站建设
  • 杭州做搜索引擎网站的公司网站建设 网络推广
  • 中国现代公路建设有限公司网站个人网站定制
  • 网站的需求奈曼旗华水建设工程公司网站
  • 网站的形式有哪些成都建设工程交易中心网站
  • 九讯鹿网站建设直播软件哪个最好用
  • 安卓从网站获取视频怎么做新闻发稿
  • 电影院订票网站开发怎么建公司网站教程
  • 在家做农业关注什么网站手机搜索引擎
  • 网站的服务有哪些网站建设与制作设计公司
  • 精利手表网站湛江企业网站建设公司
  • 做的新网站能用多久泰国公共建设网站
  • 企业网站seo运营有赞分销
  • 线上推广计划免费网站seo
  • 公司做网站怎么赚钱吗刷seo快速排名
  • 广州网站建设360元查看网站开发
  • 十堰微网站建设电话wordpress标题去掉私密
  • 网站建设及应用实施方案9158个人空间登录
  • 创业 建网站免费域名的选择方法
  • 最早的软件开发模型深圳网站优化项目
  • 做网站创业流程图装修价格
  • 做网店好还是网站好企业+php网站建设
  • flash成品网站网页制作基础教程ps
  • 网站开发 站长统计网站排名 优帮云
  • 邢台哪儿专业做网站企业网站托管外包怎么做
  • h5手机网站怎么做筑楼人官方网
  • 网站的优势和劣势美容加盟的网站建设
  • 快递网站建设需求分析软件工程师报名官网
  • 广东品牌网站设计专家什么叫利用网站做蜘蛛池
  • 大量情侣网名网站微信公众号外包