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

杨氏数组中查找某一数值是否存在

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

(小米真题)
题目:有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。
要求:时间复杂度小于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了,后面优化一下这个生成杨氏数组的方法

相关文章:

杨氏数组中查找某一数值是否存在

判断数据是否存在于杨氏矩阵中 &#xff08;小米真题&#xff09; 题目&#xff1a;有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中查找某个数字是否存在。 要求&#xff1a;时间复杂度小于O(N) …...

c语言对应汇编写法(以中微单片机举例)

芯片手册资料 1. 赋值语句 C语言&#xff1a; a 5; b a; 汇编&#xff1a; ; 立即数赋值 LDIA 05H ; ACC 5 LD R01,A ; R01 ACC&#xff08;a5&#xff09;; 寄存器间赋值 LD A,R01 ; ACC R01&#xff08;读取a的值&#xff09; LD R02,A ; R02 ACC&…...

详解CSS `clear` 属性及其各个选项

详解CSS clear 属性及其各个选项 1. clear: left;示例代码 2. clear: right;示例代码 3. clear: both;示例代码 4. clear: none;示例代码 总结 在CSS布局中&#xff0c;clear 属性是一个非常重要的工具&#xff0c;特别是在处理浮动元素时。本文将详细解释 clear 属性及其各个选…...

算法设计与分析三级项目--管道铺设系统

摘 要 该项目使用c算法逻辑&#xff0c;开发环境为VS2022&#xff0c;旨在通过Prim算法优化建筑物间的连接路径&#xff0c;以支持管线铺设规划。可以读取文本文件中的建筑物名称和距离的信息&#xff0c;并计算出建筑物之间的最短连接路径和总路径长度&#xff0c;同时以利用…...

Page Assist - 本地Deepseek模型 Web UI 的安装和使用

Page Assist Page Assist是一个开源的Chrome扩展程序&#xff0c;为本地AI模型提供一个直观的交互界面。通过它可以在任何网页上打开侧边栏或Web UI&#xff0c;与自己的AI模型进行对话&#xff0c;获取智能辅助。这种设计不仅方便了用户随时调用AI的能力&#xff0c;还保护了…...

VMware Win10下载安装教程(超详细)

《网络安全自学教程》 从MSDN下载系统镜像&#xff0c;使用 VMware Workstation 17 Pro 安装 Windows 10 consumer家庭版 和 VMware Tools。 Win10下载安装 1、下载镜像2、创建虚拟机3、安装操作系统4、配置系统5、安装VMware Tools 1、下载镜像 到MSDN https://msdn.itellyou…...

DS目前曲线代替的网站汇总

DS目前还不稳定&#xff0c;好在国内外大厂平台都上线了&#xff0c;汇总如下&#xff1a; 秘塔搜索&#xff1a; https://metaso.cn 360纳米AI搜索&#xff1a; https://www.n.cn/ 硅基流动&#xff1a; https://cloud.siliconflow.cn/i/snHnLED8 字节跳动火山引擎&#xf…...

具有HiLo注意力的快速视觉Transformer

摘要 https://arxiv.org/pdf/2205.13213 视觉Transformer(ViTs)在计算机视觉领域引发了最新且最重要的突破。其高效设计大多以计算复杂度的间接指标,即浮点运算数(FLOPs)为指导,然而,该指标与吞吐量等直接指标之间存在明显差距。因此,我们建议使用目标平台上的直接速度…...

《AI “造脸术”:生成对抗网络打造超真实虚拟人脸》

在科技飞速发展的当下&#xff0c;人工智能的浪潮席卷而来&#xff0c;其中生成对抗网络&#xff08;GANs&#xff09;技术以其独特的魅力&#xff0c;成为了生成高度真实感虚拟人脸的强大引擎。无论是影视制作中虚拟角色的塑造&#xff0c;还是游戏领域中多样化角色形象的构建…...

2025.2.6总结

今天想聊聊工作。 1.到底什么是工作&#xff1f; 个人理解&#xff0c;工作就是在规定的时间下&#xff0c;高质量的完成领导交代的任务。刚开始工作时&#xff0c;我只懂一味的埋头苦干&#xff0c;能干多少干多少&#xff0c;最后结果怎么样我也不是很在乎。后面&#xff0…...

RK3576——USB3.2 OTG无法识别到USB设备

问题&#xff1a;使用硬盘接入到OTG接口无热插拔信息&#xff0c;接入DP显示屏无法正常识别到显示设备&#xff0c;但是能通过RKDdevTool工具烧录系统。 问题分析&#xff1a;由于热插拔功能实现是靠HUSB311芯片完成的&#xff0c;因此需要先确保HUSB311芯片驱动正常工作。 1. …...

低代码系统-插件功能分析( 某道云)

本文主要把其的插件进行了简单分析&#xff0c;不做业务上的梳理&#xff0c;不做推荐。 可大致分为&#xff1a; 群机器人 信息查询 智能识别 实名验证类 数据库类 通知类 通知类 aPaas增强 考勤同步 财务类 类别 插件名称 功能简介 群机器人类 某钉机器人 即在表单处完…...

如何在 FastAPI 中使用本地资源自定义 Swagger UI

要自定义 FastAPI 中的 Swagger UI&#xff0c;且使用本地资源来代替 CDN。只是需要稍微修改一下。 修改后的代码&#xff1a; 步骤&#xff1a; 挂载本地静态文件目录&#xff1a;我们将本地的 Swagger UI 资源文件&#xff08;如 .js, .css, favicon.png 等&#xff09;放…...

wxWidgets生成HTML文件,带图片转base64数据

编译环境大家可以看我之前的文章,CodeBlocks + msys2 + wx3.2,win10 这里功能就是生成HTML文件,没用HTML库,因为是自己固定的格式,图片是一个vector,可以动态改变数量的。 效果如下: #include <wx/string.h> #include <wx/file.h> #include <wx/ima…...

基于ArcGIS的SWAT模型+CENTURY模型模拟流域生态系统水-碳-氮耦合过程研究

流域是一个相对独立的自然地理单元&#xff0c;它是以水系为纽带&#xff0c;将系统内各自然地理要素连结成一个不可分割的整体。碳和氮是陆地生态系统中最重要的两种化学元素&#xff0c;而在流域系统内&#xff0c;水-碳-氮是相互联动、不可分割的耦合体。随着流域内人类活动…...

一键掌握多平台短视频矩阵营销/源码部署

短视频矩阵系统的介绍与应用 随着数字化营销策略的不断演进&#xff0c;传统的短视频矩阵操作方法可能已显陈旧。为此&#xff0c;一款全新的短视频矩阵系统应运而生&#xff0c;它通过整合多个社交媒体账户、创建多样化的任务、运用先进的智能视频编辑工具、实现多平台内容的…...

2.Python基础知识:注释、变量以及数据类型、标识符和关键字、输入函数、输出函数、运算符、程序类型转换

1. 注释 注释是用来解释代码&#xff0c;增强代码可读性的部分。在 Python 中&#xff0c;注释分为单行注释和多行注释。 单行注释&#xff1a;以 # 开头&#xff0c;后面的内容都被视为注释。 # 这是一个单行注释 print("Hello, World!") # 输出 "Hello, Wor…...

3NF讲解

3NF讲解 3NF&#xff08;第三范式&#xff09;是数据库设计中的一种规范化方法&#xff0c;目的是消除数据冗余和避免数据异常。它帮助数据库保持高效&#xff0c;灵活和一致性。理解3NF的关键点在于它依赖于前两个范式&#xff08;1NF和2NF&#xff09;的基础。 1. 第一范式…...

Spring Boot框架下的单元测试

1. 什么是单元测试 1.1 基本定义 单元测试(Unit Test) 是对软件开发中最小可测单位&#xff08;例如一个方法或者一个类&#xff09;进行验证的一种测试方式。在 Java 后端的 Spring Boot 项目中&#xff0c;单元测试通常会借助 JUnit、Mockito 等框架对代码中核心逻辑进行快…...

AI测试工程师成长指南:以DeepSeek模型训练为例

目录 引言&#xff1a;AI测试工程师的使命与挑战成长日记&#xff1a;从测试小白到AI测试专家核心能力&#xff1a;AI测试工程师的必备素养知识体系&#xff1a;技术栈与技能图谱AI测试工具全景&#xff1a;以DeepSeek为核心的工具链实战训练模式&#xff1a;以DeepSeek模型迭…...

GZDoom未来展望:10个开源游戏引擎的发展趋势和路线图

GZDoom未来展望&#xff1a;10个开源游戏引擎的发展趋势和路线图 【免费下载链接】gzdoom GZDoom is a feature centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities 项目地址: https://gitcode.com/gh…...

从RAG到Agentic RAG 的进化之路

何为Agentic RAG? RAG系统, 为大模型补充了数据, 无论是实时数据还是私域数据. Agentic RAG系统, 更近一步, 为RAG系统添加了Agent的智能, 让AI不光只作用在查询这个阶段, 而是充分利用, Agent的计划(Plan), 自省(reflect), 工具调用(tools use), 编排(orchestrate)等等能力,…...

当企业规模增长后,IT管理为什么越来越“失控”?

在企业早期&#xff0c;IT 管理往往是“够用就好”。 一套简单的工单工具、一份资产台账、几个人工流程&#xff0c;就足以支撑日常运转。但当企业规模逐渐扩大&#xff0c;员工数量增长、系统复杂度提升、业务节奏加快时&#xff0c;原本“还能用”的 IT 管理方式&#xff0c;…...

Windows 11硬件限制突破与系统升级完全指南

Windows 11硬件限制突破与系统升级完全指南 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat 当你的电脑因TPM 2.0或CPU世…...

从Prompt到成稿|像素剧本圣殿输入剧情大纲→输出标准剧本全流程

从Prompt到成稿&#xff5c;像素剧本圣殿输入剧情大纲→输出标准剧本全流程 1. 工具介绍&#xff1a;像素剧本圣殿 像素剧本圣殿是一款基于Qwen2.5-14B-Instruct大模型深度优化的专业剧本创作工具。它将先进的AI文本生成能力与独特的8-Bit复古视觉风格相结合&#xff0c;为编…...

intv_ai_mk11开源可部署实践:支持Webhook回调,可对接企业微信/钉钉/飞书通知

intv_ai_mk11开源可部署实践&#xff1a;支持Webhook回调&#xff0c;可对接企业微信/钉钉/飞书通知 1. 项目概述 intv_ai_mk11是一款基于Llama架构的AI对话机器人&#xff0c;拥有7B参数规模&#xff0c;能够运行在GPU服务器上。这个开源项目不仅提供了强大的对话能力&#…...

从快捷菜单到设置项:Android 11电池功能全移除实战指南

Android 11企业级设备电池功能深度定制指南 在工业平板、自助终端等专用设备场景中&#xff0c;系统界面的精简与定制往往比通用功能更重要。想象一下&#xff0c;一台用于仓库管理的工业平板&#xff0c;电池状态显示不仅毫无意义&#xff0c;还可能引发不必要的用户困惑——…...

你的pip更新报错,可能和Python 3.4这个“老古董”有关 | 版本兼容性排查指南

当pip更新报错时&#xff1a;Python版本兼容性深度排查指南 在Linux服务器上执行pip install --upgrade pip时&#xff0c;屏幕上突然跳出一串红色错误日志——这可能是每位Python开发者都经历过的噩梦。更令人抓狂的是&#xff0c;明明按照官方文档操作&#xff0c;却依然卡在…...

Keepass2Android密码库完整性验证终极指南:如何确保你的密码安全无虞

Keepass2Android密码库完整性验证终极指南&#xff1a;如何确保你的密码安全无虞 【免费下载链接】keepass2android Password manager app for Android 项目地址: https://gitcode.com/gh_mirrors/ke/keepass2android 在当今数字化时代&#xff0c;密码管理器已成为保护…...

Linux打印机驱动foo2zjs全攻略:从安装到优化的完整指南

Linux打印机驱动foo2zjs全攻略&#xff1a;从安装到优化的完整指南 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 价值定位&#xff1a;解决Linux打印…...