首页 > 编程语言 >【教3妹学编程-算法题】对角线最长的矩形的面积

【教3妹学编程-算法题】对角线最长的矩形的面积

时间:2024-01-08 10:35:52浏览次数:35  
标签:面积 dimensions int 编程 妹学 对角线 长度 矩形

【教3妹学编程-算法题】对角线最长的矩形的面积_java代码

3妹:好冷啊, 冻得瑟瑟发抖啦
2哥 : 这才哪跟哪,上海这几天温度算是高的啦。你看看哈尔滨,那才是冰城。
3妹:据说沈阳千名“搓澡大姨”支援哈尔滨?哈哈哈哈
2哥 : 就像今年的淄博烧烤,可能有炒作的成分
3妹:不不,是去年的了,今年已经24年啦。 2哥,你说哈尔滨的面积是多少,这么多人涌入哈尔滨,能住的下嘛。
2哥:这个就不用担心啦,自然是住得下的。 说到面积,我们是不是又该做每日一题啦?刚好今天的题目是关于面积的~

【教3妹学编程-算法题】对角线最长的矩形的面积_java代码_02

 1题目: 

给你一个下标从 0 开始的二维整数数组 dimensions。

对于所有下标 i(0 <= i < dimensions.length),dimensions[i][0] 表示矩形 i 的长度,而 dimensions[i][1] 表示矩形 i 的宽度。

返回对角线最 长 的矩形的 面积 。如果存在多个对角线长度相同的矩形,返回面积最 大 的矩形的面积。

示例 1:

输入:dimensions = [[9,3],[8,6]]
输出:48
解释:
下标 = 0,长度 = 9,宽度 = 3。对角线长度 = sqrt(9 * 9 + 3 * 3) = sqrt(90) ≈ 9.487。
下标 = 1,长度 = 8,宽度 = 6。对角线长度 = sqrt(8 * 8 + 6 * 6) = sqrt(100) = 10。
因此,下标为 1 的矩形对角线更长,所以返回面积 = 8 * 6 = 48。
示例 2:

输入:dimensions = [[3,4],[4,3]]
输出:12
解释:两个矩形的对角线长度相同,为 5,所以最大面积 = 12。

提示:

1 <= dimensions.length <= 100
dimensions[i].length == 2
1 <= dimensions[i][0], dimensions[i][1] <= 100

 2思路: 

【教3妹学编程-算法题】对角线最长的矩形的面积_数组_03

遍历,
设长宽分别为 x 和 y。

根据勾股定理,对角线长度的平方为

x2+y^2

本题是双关键字比较,第一关键字是对角线长度,我们直接用其平方值。如果遍历到更大的长度,则覆盖矩形面积。

第二关键字是矩形面积,即 x*y。如果遇到了和最长长度一样长的矩形,那么更新面积的最大值。

 3java代码: 

class Solution {
    public int areaOfMaxDiagonal(int[][] dimensions) {
        int ans = 0, maxL = 0;
        for (int[] d : dimensions) {
            int x = d[0], y = d[1];
            int l = x * x + y * y;
            if (l > maxL || (l == maxL && x * y > ans)) {
                maxL = l;
                ans = x * y;
            }
        }
        return ans;
    }
}

标签:面积,dimensions,int,编程,妹学,对角线,长度,矩形
From: https://blog.51cto.com/u_6813689/9139691

相关文章

  • Java 的 3 种网络编程的I/O 模型
     在Java的软件设计开发中,通信架构不可避免,我们在进行不同系统或者不同进程之间的数据交互,或者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说,Java早期的网络通信架构存在一些缺陷,其中最令人恼火的是基于性能低下的同步阻塞式的I/O通信(BIO),随着......
  • 【教3妹学编程-算法题】赎金信
    3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包”2哥 :3妹,什么事呀这么开森。3妹:2哥你看今天的天气多好啊,最近一周都是大晴天,艳阳高照2哥:是啊,天气不冷不热的,很适合生活3妹:据说南方的小土豆都跑到北方滑雪了,哈哈哈哈2哥:泼水成冰好玩是好玩,但是一定要注意防寒哦,看新闻都......
  • “华为杯”杭州电子科技大学2023新生编程大赛 1005
    树-HDU7406$xordist(i,j)=xordist(i,k)\oplusxordist(k,j)$在数轴和树上都是成立的那么原式变成$\sum_{i=l}^{r}xordist(i,k)\oplusxordist(k,j)$这里k指定为1号点就变成了一个很简单的拆位考虑贡献的问题了#include<bits/stdc++.h>usingnamespacestd;#de......
  • 书籍推荐-《机器人编程:使用树莓派3和Python构建和控制自主机器人》
    以下内容来自公众号【一点人工一点智能】编辑:东岸因为@一点人工一点智能书籍:LearnRoboticsProgramming:BuildandcontrolautonomousrobotsusingRaspberryPi3andPython作者:DannyStaple出版:PacktPublishing01书籍介绍我们生活在一个最复杂或重复的任务都是自动化......
  • Python教程(20)——python面向对象编程基本概念
    面向对象(Object-oriented)是一种常用的程序设计思想,它以对象作为程序的基本单元,将数据和操作封装在一起,通过对象之间的交互来实现程序的功能。在面向对象编程中,将问题抽象成对象,而对象可以拥有属性(数据)和方法(操作)。对象可以被看作是现实世界中的实体或概念,具有某种特定的状态和行......
  • 【教3妹学编程-算法题】队列中可以看到的人数
    3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包”2哥 :3妹,什么事呀这么开森。3妹:2哥你看今天的天气多好啊,最近一周都是大晴天,艳阳高照2哥:是啊,天气不冷不热的,很适合生活3妹:据说南方的小土豆都跑到北方滑雪了,哈哈哈哈2哥:泼水成冰好玩是好玩,但是一定要注意防寒哦,看新闻都......
  • Python编程1——反转一个3位整数
    反转一个只有3位数的整数。输入789,反转后输出987.代码如下:Reverse.pyclassSolution:#参数Number:一个3位数字#返回值:反转后的数字defreverseInteger(self,number):h=int(number/100)t=int(number%100/10)z=int(number......
  • c++ 期末编程题
    当然,我可以帮你整理一下你提供的C++代码,并为每个代码片段添加相应的标题。请看下面的整理:1.计算两点之间的距离#include<iostream>#include<cmath>usingnamespacestd;intmain(){intx1,x2,y1,y2;cout<<"请输入x1,x2,y1,y2的值";cin>>x1>>x2>>......
  • python学习----编程题02
    题目:企业发放的奖金根据利润提成。利润(0)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成540万60万之间时高于40万元的部分,可提成3%60万到100万之间时,高于60......
  • (五十二)C#编程基础复习——C#点阵列
    在C#中,点阵列类用来管理一个紧凑型的位值数组,数组中的值均为布尔类型,其中true(1)表示此位为开启,false(0)表示此位为关闭。当你需要存储位(英文名“bit”数据存储的最小单位,也可称为比特),但事先又不知道具体位数时,就可以使用点阵列。当需要访问点阵列中的元素时,可以使用整型索引从点阵......