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

娄底高端网站建设网络工程师是干什么的

娄底高端网站建设,网络工程师是干什么的,wordpress免签插件,学网站开发需要学什么判断数据是否存在于杨氏矩阵中 (小米真题) 题目:有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。 要求:时间复杂度小于O(N) …

判断数据是否存在于杨氏矩阵中

(小米真题)
题目:有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。
要求:时间复杂度小于O(N)

构建一个8*8的杨氏矩阵

// 生成杨氏矩阵
public static int[][] generateRandomYoungTableau(int n) {int[][] matrix = new int[n][n];Set<Integer> usedNumbers = new HashSet<>();Random random = new Random();for (int i = 0; i < n; i++) {Set<Integer> rowNumbers = new HashSet<>();for (int j = 0; j < n; j++) {int number;do {number = random.nextInt(n * n) + 1; // 生成1到n*n之间的随机数} while (usedNumbers.contains(number) || rowNumbers.contains(number));usedNumbers.add(number);rowNumbers.add(number);matrix[i][j] = number;}}// 对每一行进行排序以满足杨氏矩阵的性质for (int i = 0; i < n; i++) {Arrays.sort(matrix[i]);}// 对每一列进行排序以满足杨氏矩阵的性质for (int j = 0; j < n; j++) {int[] column = new int[n];for (int i = 0; i < n; i++) {column[i] = matrix[i][j];}Arrays.sort(column);for (int i = 0; i < n; i++) {matrix[i][j] = column[i];}}return matrix;
}

杨氏数组中查找

// 杨氏数组中查找
// 这里采取从右上角的数字进行查找的方式
// 利用杨氏数组的特性,每一次比较右上角的值都可以去掉一行或者一列
private static boolean queryInYoungTableau(int[][] matrix, int search) {boolean flag = false;int row = 0;int column = matrix[0].length - 1;while (row < matrix.length && column >= 0) {int temp = matrix[row][column];if (temp == search) {flag = true;break;} else if (temp > search) {// 去掉列column--;} else {// 去掉行row++;}}return flag;
}

测试

public static void main(String[] args){int n = 8; // 矩阵的大小int[][] matrix = generateRandomYoungTableau(n);// 打印生成的杨氏矩阵for (int[] row : matrix) {System.out.println(Arrays.toString(row));}// 判断给定的数字是否存在于 杨氏矩阵中int search = 68;boolean exists = queryInYoungTableau(matrix, search);System.out.printf("%s是否存在于杨氏矩阵中:%s%n", search, exists);
}

测试结果:

在这里插入图片描述
在这里插入图片描述
但我这个杨氏数组不是很规范,这里面最大的值也就是64了,后面优化一下这个生成杨氏数组的方法

http://www.zhongyajixie.com/news/35300.html

相关文章:

  • 安徽省建设造价管理协会网站南京seo按天计费
  • iis的网站默认端口2022好用值得推荐的搜索引擎
  • wordpress修改导航栏广州优化公司哪家好
  • wordpress 免签约主题seo网站搭建是什么
  • 银川市做网站的公司网络优化培训
  • 射阳网站开发公司网站建设代理
  • 网站哪家做的比较好友情链接多少钱一个
  • 网站制作苏州优化营商环境心得体会
  • 怎么查什么时候做的网站北京seo招聘信息
  • 邯郸市网站建设百度关键词搜索排名多少钱
  • 专业做网站企业北京seo站内优化
  • 济南一哥网站建设公司百度推广入口
  • 网站网站开发免费创建网站的平台
  • 宁波seo深度优化平台有哪些seo网络培训班
  • 建网站做点什么好惠东seo公司
  • 怎么做中英文网站怎么制作网站教程步骤
  • 房地产网站加盟新浪微博指数查询
  • 武汉新天厦建设工程有限公司网站搜索引擎优化方法
  • 云平台网站叫什么北京seo编辑
  • 搜索关键词可以过得网站新乡百度关键词优化外包
  • 仙桃有哪些做网站的公司搜狗搜索网
  • 深圳布吉网站建设seo与sem的区别
  • 大连手机自适应网站建设电话全国最新疫情实时状况地图
  • 南沙网站建设公司哪家好开发app需要多少资金
  • 网站建设 网站内容 采集绍兴百度seo
  • 哈尔滨市建筑企业管理站头条关键词排名查询
  • 天津市建设局网站网址查询ip地址
  • 阿里云备案网站名称企业邮箱注册
  • 怎么提高网站seo优化关键字排名产品设计公司
  • 网站建设缺乏个性可以免费发帖的网站