大厂秋招真题【贪心】大疆20230813秋招T1-矩形田地

题目描述与示例

题目描述

给定一个矩形田地,其高度为 h 且宽度为 w。同时,你将获得两个整数数组 horizontalCuttingverticalCutting,其中 horizontalCutting[i] 表示从矩形田地顶部到第 i 个水平切口的距离,verticalCutting[j] 表示从矩形田地的左侧到第 j 个竖直切口的距离。你的任务是根据提供的 horizontalCuttingverticalCutting 数组,进行水平和竖直位置的切割,并找出面积最大的那份田地,并返回其面积。

输入描述

第一行 h:田地的水平最大高度

第二行 w: 田地的垂直最大宽度

第三行horizontalCutting:数组的长度

第四行horizontalCutting:切割水平线的位置

第五行verticalCutting:数组的长度

第六行verticalCutting:切割垂直线的位置

输出描述

输出一个整数,代表切割后面积最大的田地大小。

示例

输入

5
4
3
1 2 4
2
1 3

输出

4

说明

输入所表示的矩形田地如下图所示,最大面积为4

在这里插入图片描述

解题思路

本题思路非常直接,分别贪心地寻找x方向和y方向相隔最大的两条切割线之间的距离x_maxy_max,相乘即为答案。

代码

Python

# 题目:【贪心】大疆2023秋招-矩形田地
# 作者:闭着眼睛学数理化
# 算法:贪心
# 代码有看不懂的地方请直接在群上提问# 输入长宽
H = int(input())
W = int(input())
# 输入y方向的切割线
yn = int(input())
y = [0] + list(map(int, input().split())) + [H]
# 输入x方向的切割线
xn = int(input())
x = [0] + list(map(int, input().split())) + [W]# 分别对y方向和x方向,求出两个切割线之间最宽的区域
y_max = max(y[i]-y[i-1] for i in range(1, yn+2))
x_max = max(x[i]-x[i-1] for i in range(1, xn+2))
# 两者相乘,即为答案
print(y_max * x_max)

Java

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// Input length and widthint H = scanner.nextInt();int W = scanner.nextInt();// Input y-direction cutting linesint yn = scanner.nextInt();int[] y = new int[yn + 2];y[0] = 0;for (int i = 1; i <= yn; i++) {y[i] = scanner.nextInt();}y[yn + 1] = H;// Input x-direction cutting linesint xn = scanner.nextInt();int[] x = new int[xn + 2];x[0] = 0;for (int i = 1; i <= xn; i++) {x[i] = scanner.nextInt();}x[xn + 1] = W;// Calculate the maximum width between the cutting lines in the y-directionint y_max = 0;for (int i = 1; i < y.length; i++) {y_max = Math.max(y_max, y[i] - y[i - 1]);}// Calculate the maximum width between the cutting lines in the x-directionint x_max = 0;for (int i = 1; i < x.length; i++) {x_max = Math.max(x_max, x[i] - x[i - 1]);}// Calculate the result by multiplying the maximum widths in both directionsint result = y_max * x_max;System.out.println(result);}
}

C++

#include <iostream>
#include <vector>using namespace std;int main() {int H, W;cin >> H >> W;int yn;cin >> yn;vector<int> y(yn + 2);y[0] = 0;for (int i = 1; i <= yn; i++) {cin >> y[i];}y[yn + 1] = H;int xn;cin >> xn;vector<int> x(xn + 2);x[0] = 0;for (int i = 1; i <= xn; i++) {cin >> x[i];}x[xn + 1] = W;int y_max = 0;for (int i = 1; i < y.size(); i++) {y_max = max(y_max, y[i] - y[i - 1]);}int x_max = 0;for (int i = 1; i < x.size(); i++) {x_max = max(x_max, x[i] - x[i - 1]);}int result = y_max * x_max;cout << result << endl;return 0;
}

时空复杂度

时间复杂度:O(N+M)NM分别是horizontalCuttingverticalCutting的大小。

空间复杂度:O(1)。仅需若干常数变量。


华为OD算法/大厂面试高频题算法练习冲刺训练

  • 华为OD算法/大厂面试高频题算法冲刺训练目前开始常态化报名!目前已服务100+同学成功上岸!

  • 课程讲师为全网50w+粉丝编程博主@吴师兄学算法 以及小红书头部编程博主@闭着眼睛学数理化

  • 每期人数维持在20人内,保证能够最大限度地满足到每一个同学的需求,达到和1v1同样的学习效果!

  • 60+天陪伴式学习,40+直播课时,300+动画图解视频,300+LeetCode经典题,200+华为OD真题/大厂真题,还有简历修改、模拟面试、专属HR对接将为你解锁

  • 可上全网独家的欧弟OJ系统练习华子OD、大厂真题

  • 可查看链接 大厂真题汇总 & OD真题汇总(持续更新)

  • 绿色聊天软件戳 od1336了解更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用CountdownLatch和线程池批量处理http请求,并处理响应数据

背景和问题 ​ 背景&#xff1a;最近项目的一个接口数据&#xff0c;需要去请求其他多个服务器的数据&#xff0c;然后统一返回&#xff1b; 问题点&#xff1a;如果遍历所有的服务器地址&#xff0c;然后串行请求就会出现请求时间过长&#xff0c;加入需要请求十个服务器&…

解决谷歌学术bib信息不全的问题

在我们撰写学术论文时&#xff0c;经常需要引用参考文献。如果用latex撰写论文&#xff0c;势必会用到文献的bib信息&#xff0c;大部分的教程都会告诉我们去google scholar上去搜索。 一、问题描述 搜索一篇文章&#xff0c;然后选择cite&#xff0c;再选择bib。 很明显&…

Node学习笔记之MySQL基本使用

使用 SQL 管理数据库 其实写接口简单来说就是操作数据库数据&#xff0c;所以我们需要学会数据库的增、删、查、改等基本操作 1. 什么是 SQL SQL&#xff08;英文全称&#xff1a;Structured Query Language&#xff09;是结构化查询语言&#xff0c;专门用来访问和处理数据…

(2)Nmap

笔记目录 渗透测试工具(1)wireshark渗透测试工具(2)Nmap渗透测试工具(3)BurpsuiteAWD比赛(1)AWD入门攻略大纲 1.工具简介 (1)定义 ①功能 网络扫描和嗅探工具包&#xff0c;三个主要基本功能&#xff1a; 探测一组主机是否在线 扫描主机端口、嗅探所提供的网络服务 推断出主…

Keil实现Flash升级跳转(STM32/GD32/HC32)

编写BOOT程序&#xff0c;和APP程序。 BOOT程序检查OTA参数&#xff0c;执行OTA升级&#xff0c;然后跳转到APP代码。 记录一下跳转APP需要修改得东西&#xff1a; 1、BOOT程序 修改跳转地址 先检查APP地址是否有效 然后关闭外设 反初始化 设置MSP指针&#xff0c;进行跳转 …

ZooKeeper+HBase分布式集群环境搭建

安装版本&#xff1a;hadoop-2.10.1、zookeeper-3.4.12、hbase-2.3.1 一、zookeeper集群搭建与配置 1.下载zookeeper安装包 2.解压移动zookeeper 3.修改配置文件&#xff08;创建文件夹&#xff09; 4.进入conf/ 5.修改zoo.cfg文件 6.进入/usr/local/zookeeper-3.4.12/zkdata…

Vue 模板字符串碰到script无法识别,报错Parsing error: Unterminated template.

需求&#xff1a; 将js代码完整的显示在界面上&#xff0c;包括标签 代码如下&#xff1a; 报错信息如下&#xff1a; 我们在上图中可以看到模板字符串加入了script标签后会报错 原因&#xff1a;运行JS的时候由上至下&#xff0c;先识别模板字符串里面的script标签&#xf…

基于B/S架构,包括PC后台管理端、APP移动端、可视化大屏端的智慧工地源码

智慧工地管理平台充分运用数字化技术&#xff0c;聚焦施工现场岗位一线&#xff0c;依托物联网、互联网、AI等技术&#xff0c;围绕施工现场管理的人、机、料、法、环五大维度&#xff0c;以及施工过程管理的进度、质量、安全三大体系为基础应用&#xff0c;实现全面高效的工程…

计算机网络,网络(OSI)七层模型,三次握手四次挥手,get与post请求区别,网络IO(BIO\NIO\AIO),TCP与UDP区别

1.OSI模型&#xff1f; 开放式系统互联通信参考模型(Open System Interconnection Reference Model) OSI网络七层模型&#xff1a;应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 TCP/IP协议群简化了OSI七层模型&#xff1a;应用层、传输层、网络层、数据链路…

自然语言处理---文本预处理概述

自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是计算机科学与语言学中关注于计算机与人类语言间转换的领域。其主要应用于&#xff1a;语音助手、机器翻译、搜索引擎、智能问答等。 文本预处理概述 文本语料在输送给模型前一般需要一…

QSlider 类使用教程

文章目录 1、简介2 、公共类型3、属性4、functions4.1、访问属性相关 function4.2、公共槽4.3、Signal4.4、其他方法 5、设置样式 QT 官方文档参考地址&#xff1a;https://doc.qt.io/qt-5/qslider.html 1、简介 QSlider是垂直或水平滑块条控件&#xff0c;最常见的应用就是视…

MySQL常见面试题

一、存储引擎相关 &#xff08;1&#xff09;MySQL 支持哪些存储引擎? MySQL支持多种存储引擎&#xff0c;比如InnoDB&#xff0c;MyISAM&#xff0c; MySQL大于等于5.5之后&#xff0c;默认存储引擎是InnoDB &#xff08;2&#xff09;InnoDB 和 MyISAM 有什么区别? InnoD…

【计算机网络】IP协议的相关特性

IP协议&#xff1a;互联网的核心组件 在当今高度数字化的世界中&#xff0c;互联网已成为人们生活、工作不可或缺的一部分。而在这个庞大的网络中&#xff0c;IP协议&#xff08;Internet Protocol&#xff09;作为核心的通信协议&#xff0c;发挥着至关重要的作用。本文将详细…

http post协议发送本地压缩数据到服务器

1.客户端程序 import requests import os # 指定服务器的URL url "http://192.168.1.9:8000/upload"# 压缩包文件路径 folder_name "upload" file_name "test.7z" headers {Folder-Name: folder_name,File-Name: file_name } # 发送POST请求…

浏览器从输入url到渲染页面发生了什么?

浏览器从输入url到渲染页面发生了什么&#xff1f; 一、解析URL 首先浏览器做的第一步工作就是要对 URL 进行解析&#xff0c;浏览器会判断这个url的合法性 &#xff0c;以及是否有可用缓存&#xff08;如果有缓存即可以不用进行下一步的DNS域名解析&#xff09;&#xff0c;…

CAN总线测试——CAN一致性之物理层

CAN一致性物理层测试项 1.最小通讯电压测试2.最大通讯电压测试3.显性位/隐性位输出电压测试4.信号跳变沿测试5. 地偏移6. 终端电阻 1.最小通讯电压测试 2.最大通讯电压测试 3.显性位/隐性位输出电压测试 4.信号跳变沿测试 5. 地偏移 6. 终端电阻

Docker笔记-docker搭建nginx及移植

从官网找到对应的镜像&#xff1a; ​​​​​​https://hub.docker.com/_/nginx/tags 查看镜像 docker images 运行容器&#xff0c;然后将配置文件等拷贝到主机上&#xff1a; docker run --name nginx -d nginx 拷贝路径&#xff1a; docker cp nginx:/etc/nginx/nginx…

JDBC相关记录

JDBC&#xff1a;Java DadaBase Connectivity 即Java语言连接数据库。 本质&#xff1a;JDBC是SUN公司制定的一套接口&#xff08;interface&#xff09;。 作用&#xff1a;不同的数据库有自己独特设计原理&#xff0c;JDBC的可以让Java程序员关注业务本身&#xff0c;而不需要…

爬虫学习日记第八篇(爬取fofa某端口的协议排行及其机器数目,统计top200协议)

需求 找到最常用的200个协议 通过fofa搜索端口&#xff0c;得到协议排名前五名和对应机器的数目。 遍历端口&#xff0c;统计各个协议对应的机器数目&#xff08;不准&#xff0c;但能看出个大概&#xff09; 读写API API需要会员&#xff0c;一天只能访问1000次。 import…

【JavaEE】初识计算机网络(TCP/IP五层模型及封装和分用)

一、 网络通信基础 网络互连的目的是进行网络通信&#xff0c;也即是网络数据传输&#xff0c;更具体一点&#xff0c;是网络主机中的不同进程间&#xff0c;基于网络传输数据。 那么&#xff0c;在组建的网络中&#xff0c;如何判断到底是从哪台主机&#xff0c;将数据传输到…