2024-12-18:正方形中的最多点数。用go语言,给定一个二维数组 points 和一个字符串 s,其中 points[i] 表示第 i 个点的坐标,s[i] 表示第 i 个点的标签。 如果一个正

news/2024/12/18 9:40:14/文章来源:https://www.cnblogs.com/moonfdd/p/18613965

2024-12-18:正方形中的最多点数。用go语言,给定一个二维数组 points 和一个字符串 s,其中 points[i] 表示第 i 个点的坐标,s[i] 表示第 i 个点的标签。

如果一个正方形的中心在 (0, 0),边与坐标轴平行,并且内部没有标签相同的两个点,则称这个正方形为“合法”的。

你的任务是返回可以被“合法”正方形所包含的最多点数。

注意:

1.如果一个点位于正方形的边上或其内部,则视为在正方形内。

2.正方形的边长可以为零。

1 <= s.length, points.length <= 100000。

points[i].length == 2。

-1000000000 <= points[i][0], points[i][1] <= 1000000000。

s.length == points.length。

points 中的点坐标互不相同。

s 只包含小写英文字母。

答案2024-12-18:

chatgpt

题目来自leetcode3143。

大体步骤如下:

1.创建一个 map 来存储每个标签对应的可能存在的最短距离。

2.遍历给定的每个点和其对应的标签:

  • 计算这个点到 (0, 0) 的距离。

  • 检查是否存在其他标签对应的最短距离小于当前点到 (0, 0) 的距离,并将可能的最短距离更新到 map 中。

3.统计每个标签对应的最短距离,并最终找到可以被“合法”正方形所包含的最多点数。

时间复杂度:假设有 n 个点,则遍历所有点需要 O(n) 的时间复杂度,因此总体时间复杂度是 O(n)。

空间复杂度:使用了一个 map 存储每个标签的最短距离,以及两个长度为 26 的数组来存储最短距离,因此额外空间复杂度为 O(1)。

Go完整代码如下:

package mainimport ("fmt"
)func maxPointsInsideSquare(points [][]int, s string) int {min1 := make([]int, 26)for i := range min1 {min1[i] = 1000000001}min2 := 1000000001for i, ch := range s {x, y := points[i][0], points[i][1]j := int(ch - 'a')d := max(abs(x), abs(y))if d < min1[j] {min2 = min(min2, min1[j])min1[j] = d} else if d < min2 {min2 = d}}res := 0for _, d := range min1 {if d < min2 {res++}}return res
}func abs(a int) int {if a > 0 {return a}return -a
}func main() {points := [][]int{{2, 2}, {-1, -2}, {-4, 4}, {-3, 1}, {3, -3}}s := "abdca"fmt.Println(maxPointsInsideSquare(points, s))
}

在这里插入图片描述

Rust完整代码如下:

fn max_points_inside_square(points: Vec<Vec<i32>>, s: &str) -> i32 {let mut min1: Vec<i32> = vec![1000000001; 26];let mut min2 = 1000000001;for (i, ch) in s.chars().enumerate() {let (x, y) = (points[i][0], points[i][1]);let j = (ch as u8 - b'a') as usize;let d = max(x.abs(), y.abs());if d < min1[j] {min2 = min2.min(min1[j]);min1[j] = d;} else if d < min2 {min2 = d;}}let mut res = 0;for &d in &min1 {if d < min2 {res += 1;}}res
}fn max(a: i32, b: i32) -> i32 {if a > b {a} else {b}
}fn main() {let points = vec![vec![2, 2], vec![-1, -2], vec![-4, 4], vec![-3, 1], vec![3, -3]];let s = "abdca";println!("{}", max_points_inside_square(points, s));
}

在这里插入图片描述

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

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

相关文章

外贸行业数字化转型:如何通过协同管理软件优化流程

一、外贸行业面临的管理挑战 外贸行业的工作流程涵盖了多个环节,包括市场调研、客户开发、订单跟进、供应链管理、物流协调、财务结算等。每个环节涉及多个部门和人员,需要高效的沟通与协调。具体来说,外贸企业面临的管理挑战主要包括: 1.1 订单管理复杂且动态外贸行业的订…

为什么说“AI无法推理”本身就是一种偏见

人类是骄傲的生物。最近,关于AI是否具备推理能力的争论愈演愈烈。几个月前发布的OpenAI的o1模型引发了各种反应,有人认为它“不过是些障眼法”,也有人称之为“AI的新范式”。 AI的推理能力(或者缺乏推理能力)似乎触动了我们许多人敏感的神经。我怀疑,承认AI会“推理”被视…

【必看】内外网文件传输方法大全 看看哪个适合你!

一、内外网文件传输的核心需求 内外网文件传输的核心需求可以归纳为安全性、效率、合规性、兼容性、权限控制、自动化、部署灵活性和成本控制。企业应根据自身业务需求和安全策略,选择合适的解决方案来满足这些核心需求,实现高效、安全、合规的数据交换。二、内外网文件传输的…

在线教育系统搭建公司

在快速发展的信息技术背景下,全球的教育产业正经历前所未有的变革。尤其是知识付费与在线教育的兴起,不仅改变了教育的方式,也为教育内容创作者带来了新的商业机遇。这一转型的背后,是一系列新兴技术和商业模式的支持。在线教育平台作为连接老师与学生的桥梁,在促进优质教…

Linux安装Anaconda

1、下载Anaconda安装脚本 这里我们需要在官网上查找自己需要的版本,地址链接在下面: https://repo.anaconda.com/archive/ 下载之后,将文件移动到服务器上2、安装Anaconda执行命令:chmod 755 Anaconda3-2020.02-Linux-x86_64.sh 赋予脚本执行权限执行命令:./Anaconda3-2020…

东方通TongWeb7.0.4.9M4部署SuperMap iServer 11.2.1

一、软件版本操作系统: CentOS Linux release 7.5.1804 (Core) JDK:11.0.18 东方通:TongWeb7.0.4.9M4 SuperMap iServer:11.2.1JDK和TongWeb软件分享: 链接: https://pan.baidu.com/s/1HGDTPnPID0PEOMbg3FjTVQ?pwd=bh8v 提取码: bh8v 东方通软件许可请从其官网申请二、东方…

一款基于 .NET MVC 框架开发、功能全面的MES系统

前言 今天大姚给大家分享一款基于 .NET MVC 框架开发、功能全面的离散型零部件制造管理系统(MES):EasyMES。 项目介绍 EasyMES一款基于 .NET 6 MVC 框架开发、开源免费(MIT License)、功能全面的离散型零部件制造管理系统(MES)和仓储管理系统(WMS)。 系统功能MES功能:…

读图数据库实战笔记06开发应用程序

开发应用程序1. 开发应用程序 1.1. 在图中解决问题需要转换思维方式,从遍历图的角度思考问题 1.2. skeleton(骨架版本)1.2.1. 不含任何代码的应用程序骨架,只有为方法预留的桩(stub)​。1.2.2. 适合想自己编写代码的读者1.3. commented(注释版本)1.3.1. 项目所需的所有…

写一个鼠标滚动图片时放大或缩小图片

要实现鼠标滚动图片时放大或缩小图片的功能,你可以使用JavaScript(特别是其事件监听功能)与CSS(特别是其转换功能)结合。以下是一个简单的示例,说明如何实现这一功能:HTML:<!DOCTYPE html> <html lang="en"> <head><meta charset="…

TiNO-Edit:基于扩散的稳健图像编辑的时间步长和噪声优化

TiNO-Edit:基于扩散的稳健图像编辑的时间步长和噪声优化尽管有许多尝试利用预训练的文本到图像模型(T2I)(如稳定扩散(SD)),进行可控图像编辑,但产生良好的可预测结果仍然是一个挑战。以前的方法要么侧重于在特定数据集上,对预训练的T2I模型进行精细调优,以生成特定类…

并非所有体素都是相等的:具有自蒸馏的硬度感知语义场景完成

并非所有体素都是相等的:具有自蒸馏的硬度感知语义场景完成语义场景完成,也称为语义占用预测,可以为自动驾驶汽车提供密集的几何和语义信息,这引起了学术界和工业界越来越多的关注。不幸的是,现有的方法通常将此任务表述为体素分类问题,并在训练过程中在3D空间中平等对待…

数据库性能优化

title: 数据库性能优化 date: 2024/12/18 updated: 2024/12/18 author: cmdragon excerpt: 数据库性能优化是确保数据库高效、高速响应用户请求的关键过程。通过有效的设计、合理使用索引、优化查询和系统配置,数据库管理者可以显著提升系统的响应时间和处理能力。 categori…