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

LeetCode每日一题_3143.正方形中的最多点数

在这里插入图片描述
解题思路:自己:先把points里的点拿来求出坐标系的离原点最远的点,然后根据最远距离新建一个数组,然后把points的点都在新建的数组上标记出来。然后再便利从边长为0的正方形开始,里面是否有重复的标签。但是代码写不出来。

class Solution {public int maxPointsInsideSquare(int[][] points, String s) {// int[] arr = new int[s.length()];// int length = points.length;// int center =// for(int i =0 ;i<points.length;i++){int max =0;for(int i=0;i<points.length;i++){int max_index = Math.abs(points[i][0]) > Math.abs(points[i][1]) ? Math.abs(points[i][0]) : Math.abs(points[i][1]);int max = max_index>max?max_index:max;}int[] arr = new int[max*2+1][max*2+1];for(int i =0 ;i<points.length;i++){arr[points[i][0]+max][points[i][1]+max]=i+1;//通过赋值来表示第几个点}for(int i=0;i<max;i++){}}

看过官方提示之后:
但是运行不通过。
在这里插入图片描述

import java.lang.Math;
class Solution {public int maxPointsInsideSquare(int[][] points, String s) {// int[] arr = new int[s.length()];// int length = points.length;// int center =// for(int i =0 ;i<points.length;i++){char[] s_arr = s.toCharArray();for(int i =0;i<points.length-1;i++){for(int j=i;j<points.length-1;j++){if(Math.max(Math.abs(points[j][0]),Math.abs(points[j][1]))>Math.max(Math.abs(points[j+1][0]),Math.abs(points[j+1][1]))){int[][] index = new int[1][2];index[0] = points[j];points[j]=points[j+1];points[j+1]=index[0];char index_s =s_arr[j];s_arr[j]=s_arr[j+1];s_arr[j+1]=index_s;}}}int re=0;for(int i=0 ;i<Math.max(Math.abs(points[points.length-1][0]),Math.abs(points[points.length-1][1]));i++){ArrayList<Character> list = new ArrayList<>();for(int j=0;j<points.length;j++){if(i<Math.max(Math.abs(points[points.length-1][0]),Math.abs(points[points.length-1][1]))){if((list.indexOf(s_arr[j]))!=-1){return i;}else{list.add(s_arr[j]);}}else{break;}}}return  Math.max(Math.abs(points[points.length-1][0]),Math.abs(points[points.length-1][1]));}
}

他人思路:
对于一个点 (x,y),我们可以将其映射到以原点为中心的第一象限,即 (max(∣x∣,∣y∣),max(∣x∣,∣y∣))。这样,我们就可以将所有的点映射到第一象限,然后按照点到原点的距离进行排序。我们可以使用哈希表 g 来存储所有点到原点的距离,然后按照距离进行排序。对于每个距离 d,我们将所有距离为 d 的点放在一起,然后遍历这些点,如果有两个点的标签相同,那么这个正方形是不合法的,直接返回答案。否则,我们将这些点加入到答案中。
链接:https://leetcode.cn/problems/maximum-points-inside-the-square/solutions/1/python3javacgotypescript-yi-ti-yi-jie-ha-vsvi/

class Solution {public int maxPointsInsideSquare(int[][] points, String s) {TreeMap<Integer, List<Integer>> g = new TreeMap<>();for (int i = 0; i < points.length; ++i) {int x = points[i][0], y = points[i][1];int key = Math.max(Math.abs(x), Math.abs(y));g.computeIfAbsent(key, k -> new ArrayList<>()).add(i);//这段代码的作用是,‌如果g这个Map中不存在某个key,‌//则使用k -> new ArrayList<>()这个函数创建一个新的ArrayList并将其赋值给这个key;‌//如果key已经存在,‌则直接在对应的ArrayList中添加元素i。‌}boolean[] vis = new boolean[26];int ans = 0;for (var idx : g.values()) {//通过g.values()提取出来每个key对应的多个标签的在s中的位置。for (int i : idx) {//针对idx这个key有很多标签,便利每个标签int j = s.charAt(i) - 'a';if (vis[j]) {return ans;}vis[j] = true;}ans += idx.size();}return ans;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【虚拟化】KVM使用virt-manager部署及管理虚拟机
  • 嵌入式FPGA(现场可编程门阵列)面试题及参考答案
  • 简明 | ResNet特点、残差模块、残差映射理解摘要
  • 【C语言】C语言期末突击/考研--结构体与C++引用
  • 2024华硕迷你主机选购指南:全系列覆盖
  • 深入理解 C 语言中的联合体
  • JavaWeb基础1:HTML/CSS/JS/HTTP
  • 蓝屏事件:网络安全的启示
  • 云原生的候选应用
  • 静态代理与动态代理区别?
  • 记一次Mysql8.0使用GROUP BY查询导致异常问题
  • 供应链安全:黑客攻击 Nimble 包
  • 【LeetCode】133.克隆图
  • C#中常用集合类型
  • 室内宠物空气净化器哪个好?排名靠前室内宠物空气净化器使用感受
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • ES6 学习笔记(一)let,const和解构赋值
  • js继承的实现方法
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • v-if和v-for连用出现的问题
  • Vim Clutch | 面向脚踏板编程……
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 创建一种深思熟虑的文化
  • 从零开始学习部署
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 高程读书笔记 第六章 面向对象程序设计
  • 两列自适应布局方案整理
  • 目录与文件属性:编写ls
  • 前言-如何学习区块链
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 软件开发学习的5大技巧,你知道吗?
  • 我从编程教室毕业
  • 学习JavaScript数据结构与算法 — 树
  • raise 与 raise ... from 的区别
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # wps必须要登录激活才能使用吗?
  • #Spring-boot高级
  • (安卓)跳转应用市场APP详情页的方式
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)php新闻发布平台 毕业设计 141646
  • (转)iOS字体
  • (转)项目管理杂谈-我所期望的新人
  • (自适应手机端)行业协会机构网站模板
  • .NetCore 如何动态路由
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .net项目IIS、VS 附加进程调试
  • //解决validator验证插件多个name相同只验证第一的问题
  • /3GB和/USERVA开关
  • @KafkaListener注解详解(一)| 常用参数详解
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题