【每日一题】切割后面积最大的蛋糕

news2024/11/18 11:17:37

文章目录

  • Tag
  • 题目来源
  • 题目解读
  • 解题思路
    • 方法一:排序
  • 其他语言
    • python3
  • 写在最后

Tag

【排序】【数组】【2023-10-27】


题目来源

1465. 切割后面积最大的蛋糕


题目解读

切割后面积最大的蛋糕。


解题思路

方法一:排序

本题较为简单,找出最大的宽和高,然后返回乘积即可。为了找出找出最大的宽和高,我们需要计算相邻两条切痕之间的距离(包括边界与最近的切痕之间的距离)。为了便于计算,可以对水平方向和竖直方向的切痕进行排序。具体实现见下方代码。

实现代码

class Solution {
public:
    int maxArea(int h, int w, vector<int>& horizontalCuts, vector<int>& verticalCuts) {
        const int MOD = 1e9 + 7;
        sort(verticalCuts.begin(), verticalCuts.end());
        sort(horizontalCuts.begin(), horizontalCuts.end());

        long long width = 0, heigh = 0, prev = 0;
        for (auto vert : verticalCuts) {
            width = max(width, vert - prev);
            prev = vert;
        }
        width = max(width, w - prev);

        prev = 0;
        for (auto hor : horizontalCuts) {
            heigh = max(heigh, hor - prev);
            prev = hor;
        }
        heigh = max(heigh, h - prev);

        long long res = (long long) width * heigh % MOD;
        return res;
    }
};

复杂度分析

时间复杂度: O ( n l o g n ) O(nlogn) O(nlogn) n n n 为数组 horizontalCutsverticalCuts 的最大长度。

空间复杂度: O ( n l o g n ) O(nlogn) O(nlogn)

其他语言

python3

class Solution:
    def maxArea(self, h: int, w: int, horizontalCuts: List[int], verticalCuts: List[int]) -> int:
        width, heigh, prev = 0, 0, 0
        mod = 10 ** 9 + 7
        horizontalCuts.sort()
        verticalCuts.sort()

        for vert in verticalCuts:
            width = max(width, vert - prev)
            prev = vert
        width = max(width, w - prev)

        prev = 0
        for hor in horizontalCuts:
            heigh = max(heigh, hor - prev)
            prev = hor
        heigh = max(heigh, h - prev)

        res = width * heigh % mod
        return res

写在最后

如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度方法,欢迎评论区交流。

最后,感谢您的阅读,如果感到有所收获的话可以给博主点一个 👍 哦。

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

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

相关文章

Figma是什么软件?有哪些优势和劣势?

Figma作为目前最受欢迎的设计软件&#xff0c;在国外受到UI设计师的广泛好评。如果你还对Figma感到困惑&#xff0c;不知道它在做什么&#xff0c;那么今天将为您详细介绍Figma软件&#xff0c;以帮助您快速理解和更好地使用它。 Figma软件基本介绍 简单来说&#xff0c;Figm…

全网最全 Pandas的入门与高级教程全集,都在这里了!(PDF下载)

Pandas是Python中的重要数据分析工具&#xff0c;它提供了强大的数据结构和函数&#xff0c;用于数据清洗、探索、准备和分析。 Pandas 的DataFrame和Series使数据处理更加简单&#xff0c;可通过各种方法和工具处理大型数据集。 这个开源库支持从多种数据源加载数据&#xff0…

在线音乐网站-基于SSM实现+源码和技术实现文档

源码和文档下载地址: https://juzhendongli.store/commodity/details/6 百度云盘中存储有。

【求教】老菜鸟遇到新问题,双bug欢迎有緣人答疑

文章目录 一&#xff0c;序二&#xff0c;需求三&#xff0c;代码实现1. 代码结构2. 完整代码备份 四&#xff0c;bug1 详情1. 运行准备1. &#xff09;将 application.yml 文件active设置为test2.&#xff09;修改jdbc-mysql.properties 数据库参数设为实际值3.&#xff09;注…

CGAL 5.6 - Halfedge Data Structures

1 Introduction 半边数据结构&#xff08;缩写为 HalfedgeDS&#xff0c;模板参数缩写为 HDS&#xff09;是一种以边为中心的数据结构&#xff0c;能够维护顶点、边和面的入射信息&#xff0c;例如平面地图、多面体或其他嵌入任意维度的可定向二维曲面。每条边被分解成两个方向…

012:计算影线长度占比

怎么说呢&#xff0c;我希望得到一个数据&#xff0c;就是某个K线的影线长短。可以这样算&#xff0c;用高点和低点的差值作为分母&#xff0c;开盘价和收盘价的差值的绝对值作为分子&#xff0c;得出的值得越大&#xff0c;说明影线越长&#xff0c;影线越长&#xff0c;说明上…

【递归、搜索与回溯算法】第七节.257. 二叉树的所有路径和46. 全排列

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;递归、搜索与回溯算法 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&am…

666666666666666

标题 摘要引言1. HashMap简介&#xff1a;掌握什么是HashMap&#xff1f;&#x1f9d0;2. HashMap的操作技巧&#xff1a;从基础到高级&#x1f680;2.1 添加键值对&#xff1a;put(K key, V value) &#x1f4e5;2.2 获取值&#xff1a;get(Object key) &#x1f4e4;2.3 检查…

element ui el-table表格纵向横向滚动条去除并隐藏空白占位列

需求 当table内容列过多时&#xff0c;可通过height属性设置table高度以固定table高度、固定表头&#xff0c;使table内容可以滚动 现在需求是右侧滚动条不好看&#xff0c;需要去除滚动条&#xff0c;并隐藏滚动条所占列的位置 // ----------修改elementui表格的默认样式-…

068:mapboxGL绘制多边形,过滤获取选中的点的集合信息

第068个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加draw组件,绘制多边形,获取选中的点的集合信息。这里使用turf来判断点是否在多边形的范围内。通过filter方式,过滤掉未选中的点。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章…

对自动化测试的一些展望与理解

1. 需求和目标 在我开展自动化测试之前&#xff0c;其实该项目以前的测试人员也已经写了很多的接口测试用例&#xff0c;但是大多数用例处于“半瘫痪”状态&#xff0c;在CI上无人维护&#xff08;听说起初是有人维护的&#xff0c;但是后来用例多了&#xff0c;维护的人每次花…

设计模式之门面模式

前言 什么是门面模式 门面模式是一种结构型设计模式&#xff0c;它提供了一个统一的接口&#xff0c;用来访问子系统中的一群接口。它定义了一个高层接口&#xff0c;让子系统更容易使用。这种模式常用于将一个复杂的子系统封装成一个简单的接口&#xff0c;使得客户端可以方…

如何使用navicat图形化工具远程连接MariaDB数据库【cpolar内网穿透】

公网远程连接MariaDB数据库【cpolar内网穿透】 文章目录 公网远程连接MariaDB数据库【cpolar内网穿透】1. 配置MariaDB数据库1.1 安装MariaDB数据库1.2 测试局域网内远程连接 2. 内网穿透2.1 创建隧道映射2.2 测试随机地址公网远程访问3. 配置固定TCP端口地址3.1 保留一个固定的…

记 : CTF2023羊城杯 - Reverse 方向 Blast 题目复现and学习记录

文章目录 前言题目分析and复习过程exp 前言 羊城杯题目复现&#xff1a; 第一题 知识点 &#xff1a;DES算法 &#xff1a; 链接&#xff1a;Ez加密器 第二题 知识点 &#xff1a;动态调试 &#xff1a; 链接&#xff1a;CSGO 这一题的查缺补漏&#xff1a; 虚假控制流的去除…

CVE-2021-44228 Apache log4j 远程命令执行漏洞

一、漏洞原理 log4j(log for java)是由Java编写的可靠、灵活的日志框架&#xff0c;是Apache旗下的一个开源项目&#xff0c;使用Log4j&#xff0c;我们更加方便的记录了日志信息&#xff0c;它不但能控制日志输出的目的地&#xff0c;也能控制日志输出的内容格式&#xff1b;…

算法通过村第十二关青铜挑战——不简单的字符串转换问题

大家好&#xff0c;我是怒码少年小码。 今天练习一道数据处理的题目&#xff0c;字符串->整数 int myAtoi(string s) {unsigned long len s.length();//去除前端空格int index 0;while(index < len ){if(s[index]! ){break;}index;}if(index len){return 0;}int sign…

VsCode配置C/C++环境、控制台中文乱码、中文包不生效、debug调试、cin无法输入

VsCode配置C/C环境 文章目录 VsCode配置C/C环境[toc]下载VScode下载编译器MinGW 并解压将MinGW添加至环境变量测试MingGW 环境变量配置成功安装插件重启 VSCODE 并创建编程文件测试 debug可能遇到的问题Chinese 中文包未生效外部控制台中文乱码cin 无法输入终端中文乱码 下载VS…

cmake练习一

需求&#xff1a; 1、利用CGAL库Boost库&#xff0c;写一个关于CGAL的程序 2、使用cmake构建 1、创建目录结构 src中有一个main.cpp&#xff0c;放的是我们的主程序代码 2、安装CGAL和Boost库 略 3、编写cmakelist.txt cmake_minimum_required(VERSION 3.1.0) project(cg…

MySQL:至少参与xxx参与的全部事件

MySQL&#xff1a;至少参与xxx参与的全部事件 – WhiteNights Site 标签&#xff1a;MySQL, 数据库 这玩意&#xff0c;期末要考&#xff0c;还是重点。所以不得不仔细思考思考怎么写了。 什么时候用NOT EXISTS 双重否定表肯定 之前虽然已经讲过了&#xff0c;不过那一篇文章…

Apache ActiveMQ RCE漏洞复现(CNVD-2023-69477)

0x01 产品简介 ActiveMQ是一个开源的消息代理和集成模式服务器&#xff0c;它支持Java消息服务(JMS) API。它是Apache Software Foundation下的一个项目&#xff0c;用于实现消息中间件&#xff0c;帮助不同的应用程序或系统之间进行通信。 0x02 漏洞概述 Apache ActiveMQ 中存…