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

如何做网站平台关注长春做网站seo

如何做网站平台关注,长春做网站seo,厦门公司注册名称查询系统,淘宝建设网站的目的是什么意思2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

在这里插入图片描述

2025 A卷 100分 题型

本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式;
并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析;
本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分享》

华为OD机试真题《AI面板识别》:


文章快捷目录

题目描述及说明

Java

python

JavaScript

C

GO


题目名称:AI面板识别


  • 知识点:坐标处理、排序算法、逻辑判断
  • 时间限制:1秒
  • 空间限制:256MB
  • 限定语言:不限

题目描述

AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小相同且无重叠。每个灯由左上角坐标(x1, y1)和右下角坐标(x2, y2)描述。需按“先行后列”规则排序输出灯的编号,规则如下:

  1. 基准灯选择:每次从未排序的灯中选择y1最小的灯(最高位置)作为基准灯。
  2. 同行判定:与基准灯y1坐标差 ≤ 灯高度一半((y2-y1)/2)的灯视为同一行。
  3. 行内排序:同一行的灯按x1坐标升序排列。
  4. 输出结果:按排序顺序输出编号,空格分隔。

输入描述

  • 第一行为N(灯数量)。
  • 接下来N行,每行为灯的编号、x1、y1、x2、y2(编号唯一,1 ≤ 编号 ≤ 100,坐标范围0 ≤ x1 < x2 ≤ 1000,0 ≤ y1 < y2 ≤ 1000)。

输出描述
排序后的编号列表,空格分隔。

示例
输入:

5  
1 0 0 2 2  
2 6 1 8 3  
3 3 2 5 4  
5 5 4 7 6  
4 0 4 2 6  

输出:

1 2 3 4 5  

Java

问题分析

需要在一个包含N个指示灯的矩阵中,按特定规则排序输出灯的编号。规则为“先行后列”:每次选择y1最小的灯作为基准灯,确定同一行(y1差≤基准灯高度的一半)的灯,并按x1升序排序。


解题思路

  1. 基准灯选择:每次从未处理的灯中选择y1最小的灯。
  2. 同行判定:与基准灯y1的差不超过其高度一半的灯视为同一行。
  3. 行内排序:同一行的灯按x1升序排列,x1相同则按编号升序。
  4. 动态处理:将处理后的灯从待处理列表中移除,重复直到所有灯处理完毕。

代码实现

import java.util.*;class Lamp {int id;int x1;int y1;int x2;int y2;public Lamp(int id, int x1, int y1, int x2, int y2) {this.id = id;this.x1 = x1;this.y1 = y1;this.x2 = x2;this.y2 = y2;}// 计算基准灯的高度的一半public double getThreshold() {return (this.y2 - this.y1) / 2.0;}
}public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();List<Lamp> lamps = new ArrayList<>();// 读取所有灯的信息for (int i = 0; i < N; i++) {int id = scanner.nextInt();int x1 = scanner.nextInt();int y1 = scanner.nextInt();int x2 = scanner.nextInt();int y2 = scanner.nextInt();lamps.add(new Lamp(id, x1, y1, x2, y2));}List<Lamp> remainingLamps = new ArrayList<>(lamps);List<Lamp> result = new ArrayList<>();while (!remainingLamps.isEmpty()) {// 1. 找到基准灯(y1最小的)Lamp base = findBaseLamp(remainingLamps);// 2. 计算阈值double threshold = base.getThreshold();// 3. 筛选同一行的灯List<Lamp> sameRow = filterSameRow(remainingLamps, base, threshold);// 4. 行内排序(x1升序,若x1相同则按id升序)sortRow(sameRow);// 5. 将这批灯加入结果result.addAll(sameRow);// 6. 从待处理列表中移除这批灯remainingLamps.removeAll(sameRow);}// 输出结果for (Lamp lamp : result) {System.out.print(lamp.id + " ");}}// 找到当前未处理灯中y1最小的灯private static Lamp findBaseLamp(List<Lamp> lamps) {Lamp base = null;int minY1 = Integer.MAX_VALUE;for (Lamp lamp : lamps) {if (lamp.y1 < minY1) {minY1 = lamp.y1;base = lamp;}}return base;}// 筛选同一行的灯(基于基准灯的阈值)private static List<Lamp> filterSameRow(List<Lamp> lamps, Lamp base, double threshold) {List<Lamp> sameRow = new ArrayList<>();for (Lamp lamp : lamps) {if (Math.abs(lamp.y1 - base.y1) <= threshold) {sameRow.add(lamp);}}return sameRow;}// 行内排序:x1升序,x1相同则id升序private static void sortRow(List<Lamp> row) {Collections.sort(row, (a, b) -> {if (a.x1 != b.x1) {return a.x1 - b.x1;} else {return a.id - b.id;}});}
}

代码详解

  1. Lamp类:存储灯的属性,包括编号、坐标,并计算基准灯的高度阈值。
  2. 输入处理:读取输入数据,构造Lamp对象列表。
  3. 循环处理剩余灯
    • findBaseLamp:遍历找到y1最小的基准灯。
    • filterSameRow:筛选与基准灯y1差不超过阈值的灯。
    • sortRow:按x1升序(x1相同则按id升序)排序。
    • 将处理后的灯加入结果列表并从剩余列表中移除。
  4. 输出结果:按顺序输出编号。

示例测试

示例1输入

5  
1 0 0 2 2  
2 6 1 8 3  
3 3 2 5 4  
5 5 4 7 6  
4 0 4 2 6  

输出1 2 3 4 5

示例2输入

2  
2 0 0 2 2  
1 0 0 3 3  

输出1 2 (x1相同,按id升序)


综合分析

  1. 时间复杂度
    • 每次选择基准灯为O(N),筛选和排序为O(N),总复杂度O(N²),适用于N≤100。
  2. 空间复杂度:存储灯的信息和中间列表,空间复杂度O(N)。
  3. 正确性:严格遵循题目规则,处理所有边界情况。
  4. 适用性:代码逻辑清晰,处理了x1相同的情况,确保排序稳定性。

python

问题分析

需要在一个包含N个指示灯的矩阵中,按特定规则排序输出灯的编号。规则为“先行后列”:每次选择y1最小的灯作为基准灯,确定同一行(y1差≤基准灯高度的一半)的灯,并按x1升序排列。


解题思路

  1. 基准灯选择:每次从未处理的灯中选择y1最小的灯。
  2. 同行判定:与基准灯y1的差不超过其高度一半的灯视为同一行。
  3. 行内排序:同一行的灯按x1升序排列,x1相同则按编号升序。
  4. 动态处理:将处理后的灯从待处理列表中移除,循环直到所有灯处理完毕。

代码实现

class Lamp:def __init__(self, lamp_id, x1, y1, x2, y2):self.id = lamp_idself.x1 = x1self.y1 = y1self.x2 = x2self.y2 = y2@propertydef height_threshold(self):"""计算基准灯的高度阈值(高度的一半)"""return (self.y2 - self.y1) / 2.0def main():import sysinput = sys.stdin.read().splitlines()n = int(input[0])lamps = []# 1. 读取输入数据for line in input[1:n+1]:parts = list

文章转载自:

http://oq8hK6Gs.yhwmg.cn
http://gnjm5TFZ.yhwmg.cn
http://oFf7OHww.yhwmg.cn
http://SzzkyPFj.yhwmg.cn
http://JzlcDlwB.yhwmg.cn
http://WPifZMha.yhwmg.cn
http://4yVmCvrD.yhwmg.cn
http://lno69e3S.yhwmg.cn
http://bsINw9ZN.yhwmg.cn
http://4byWYqTZ.yhwmg.cn
http://5ubrWG3l.yhwmg.cn
http://mlPnTEpv.yhwmg.cn
http://FiFfNDzy.yhwmg.cn
http://B4CWRUG1.yhwmg.cn
http://K116xgyi.yhwmg.cn
http://yPsKr39u.yhwmg.cn
http://opxpe7Pe.yhwmg.cn
http://dPzibXvR.yhwmg.cn
http://ZqdQ4ih0.yhwmg.cn
http://RDDeVd6Q.yhwmg.cn
http://q9aigpd4.yhwmg.cn
http://lCRBOTP6.yhwmg.cn
http://xPhTs65m.yhwmg.cn
http://hEwaZXkW.yhwmg.cn
http://kPbDAoAo.yhwmg.cn
http://PA0qX73Z.yhwmg.cn
http://9OwpR3V3.yhwmg.cn
http://dyESOcKn.yhwmg.cn
http://W7FRFVtW.yhwmg.cn
http://UquSh9Ph.yhwmg.cn
http://www.dtcms.com/wzjs/701870.html

相关文章:

  • 商城网站备案要求常德市做网站的公司
  • 班级网站建设图片长沙手机网站建设公司哪家好
  • 南通e站网站建设wordpress后台打开慢
  • 网站制作教程谁的好好听的网络公司名称
  • 免费微信引流推广的方法一分钟看懂seo
  • 怎样推广网站自己制作app的应用程序
  • 常用的做网站的工具都有哪些做网站 php python
  • 有域名后如何建网站取消Wordpress外链转内链
  • 云南凡科建站网站改版总结
  • 有什么网站做的比较高大上工商注册公司名称核准
  • 太原手机网站设计免费申请空间的地址有哪些
  • 招远市建设局网站wordpress主体
  • 咸阳做网站xymokj中英文网站怎么做
  • 网站设计销售营销系统网站源码
  • 高端网站登录入口网络的推广
  • 广东网站建设公海康打开网站显示建设中
  • 开发一整个网站要多久wordpress 普通文本 quot
  • 网站先做移动站在做pc站可行吗网站建设对旅游意义
  • 网站开发公司怎么查网站推广有哪些举措
  • 保定 网站建设软件开发网站制作不用备案
  • 建站的好公司做移动网站优化软
  • 深圳高端网站建设费用发广告平台有哪些免费
  • hao123网站源码制作2015最新仿网页设计对板式的要求
  • 做教育行业营销类型的网站北京朝阳网站建设公司
  • 网站怎么做数据库定制旅游哪个网站好用
  • 浙江专业网页设计免费建站网站怎样做微信公众号
  • wordpress更改站点名称小程序推广方式
  • 制作网页的过程中可以单击什么标签显示网页效果seo入门课程
  • 自己做简单网站价格上海建设摩托车官方网站
  • 绍兴市交通建设有限公司网站做网站是什么时候分页