当前位置: 首页 > 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.wooajung.com/news/27524.html

相关文章:

  • 网站自己可以做么市场调研报告模板
  • 招聘网站可以做劳务派遣吗企业网站建设方案
  • 怎么样做微网站江门关键词排名工具
  • 平台网站建设哪家好谷歌google搜索引擎入口
  • 罗湖网站-建设深圳信科太原seo公司
  • 网站业务怎么做的网页链接
  • 单页营销网站怎么做公司营销网站建设
  • 做网站改版的苏州疫情最新情况
  • 可以做网站的电脑软件打开百度网站
  • wordpress添加小说板块朝阳seo排名
  • 网站制作工作流程宁波专业seo服务
  • 做妓的网站百度推广竞价开户
  • 国外对网站开发的研究今日时事新闻
  • 网站设计的人员分工百度推广托管
  • 什么腾讯网站做任务能刷q币山西seo关键词优化软件搜索
  • 建设银行网站认证app推广文案
  • 荆州市城市建设投资开发有限公司网站泰州seo公司
  • 做面点的网站洛阳网站建设优化
  • 杭州网站建设专注乐云seo深圳网络营销推广招聘网
  • 网上哪个购物平台最值得信赖seo分析报告
  • 自己做网站做淘宝客南阳本地网络推广优化公司
  • 江西奶茶加盟网站建设seo草根博客
  • wordpress安装插件导致网站佛山营销型网站建设公司
  • 外贸行情seo培训学校
  • 网站双收录怎么做301跳转百度小说风云榜排行榜官网
  • 全球新冠肺炎疫情现状免费seo搜索优化
  • 展示空间设计作品seo免费教程
  • wordpress主题The7优化二十条
  • 做响应式网站公司全国广告投放平台
  • 做团购网站需要什么家电企业网站推广方案