593. Valid Square

2023-11-02

Given the coordinates of four points in 2D space, return whether the four points could construct a square.

The coordinate (x,y) of a point is represented by an integer array with two integers.

Example:
Input: p1 = [0,0], p2 = [1,1], p3 = [1,0], p4 = [0,1]
Output: True

Note:
All the input integers are in the range [-10000, 10000].
A valid square has four equal sides with positive length and four equal angles (90-degree angles).
Input points have no order.

本题的主要思路是判断四条边是否相等,两条对角线是否相等。

int squre_dis(vector<int>& p1, vector<int>& p2){
    return pow(p1[0] - p2[0], 2) + pow(p1[1] - p2[1], 2);
}
bool validSquare(vector<int>& p1, vector<int>& p2, vector<int>& p3, vector<int>& p4) {
    int d1 = squre_dis(p1, p2), d2 = squre_dis(p1, p3), d3 = squre_dis(p1, p4),
        d4 = squre_dis(p2, p3), d5 = squre_dis(p2, p4), d6 = squre_dis(p3, p4);
    if (d1 == 0 || d2 == 0 || d3 == 0 || d4 == 0 || d5 == 0 || d6 == 0)
        return false;

    set<int> res;
    res.insert(d1), res.insert(d2), res.insert(d3), res.insert(d4), res.insert(d5), res.insert(d6);
    if (res.size() == 2)return true;    
    return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

593. Valid Square 的相关文章

  • 华为机试C语言-最长方连续方波信号

    题目描述 https zhuanlan zhihu com p 546563566 代码分层有利于代码调试 include
  • Okhttp设置公共参数,以json对象放入@Body请求公共参数的配置方式

    当网络请求都是基于一个URL 所有的接口都是同一个地址 而请求不同接口数据则是通过command字段进行配置 然后所有的请求参数都是需要自己写一个bean类 再转成json格式放入请求body里发给后台 而不是通过表单form body发送
  • MySQL之MVCC

    事务隔离级别 对于一个MySQL服务 可以有多个客户端与其建立连接 并向其发送SQL语句 一条SQL语句可能是一个事务的一部分 MySQL可以同时处理客户端的多个事务 一次事务对应着一次完成的状态转换 事务执行完毕后 需要保证数据符合客观逻

随机推荐

  • 622. 设计循环队列

    622 设计循环队列 Java实现循环队列设计 题目描述 设计你的循环队列实现 循环队列是一种线性数据结构 其操作表现基于 FIFO 先进先出 原则并且队尾被连接在队首之后以形成一个循环 它也被称为 环形缓冲器 循环队列的一个好处是我们可以
  • 比MyBatis Generator更强大的代码生成器

    本文为 从零打造项目 系列第一篇文章 首发于个人网站 从零打造项目 系列文章 比MyBatis Generator更强大的代码生成器 SpringBoot项目基础设施搭建 前言 工欲善其事 必先利其器 作为 从零打造项目 系列的第一篇文章
  • 服务器被放入后门文件,服务器被***了怎么办 rkhunter的简单安装及检测后门

    被 了 查看了下 var log messages和last都已经清理 sshd spawn bin echo c d mail s 标题 邮箱地址 邮件来报警 一 接着查看 host allow里面设置 禁止某个可疑ip的访问 二 用rk
  • STM32CubeMX----基本定时器(TIM6、TIM7)

    基本定时器TIM6 TIM7 的相关参数 Activated 激活TIM6 把前面的方框选中局表示激活了TIM6 One Pulse Mode STM32F103定时器的One Pulse Mode是一种特殊的计数模式 它只产生一个脉冲输出
  • win10 安装mysql-5.7.23-winx64

    下载MYSQL 官网下载MYSQL5 7 23版本 链接地址https www mysql com downloads 下载流程图如下 2 安装 直接解压到D盘 解压后的目录结构为 注不需要手动新建data和my ini文件 这两个是通过命
  • 关于element-ui表格table设置header-cell-class-name样式不起作用的原因分析

    在编写表格的时候想给表头添加样式 使用 header cell class name怎么都添加不上样式 检查元素发现连class都没添加上 查了很多资料有人说element之前版本不支持这属性 但我使用的并不是之前的版本啊 有人说是添加sc
  • 柚城后台管理系统--Vue+ElementUi+MySQL+NodeJs

    柚城后台管理系统 介绍 该项目是基于前后端分离的开发模式 基于Vue技术栈的SPA单页面项目 后端主要操作数据库并向前端暴露一些API接口 前端主要负责绘制页面同时 利用ajax调用后端提供的接口 具体实现功能有 用户管理 权限管理 商品管
  • Aviator表达式

    1 正则表达式 匹配 Map
  • 如何在Unity中使用AR Foundation和ARCore创建一个项目并编译到Android 11手机设备中

    最近又开始学如何使用Unity进行AR开发 因为Unity开发的AR Foundation在各种设备 例如Android iOS HoloLens 的原生AR SDK 例如ARCore ARKit Windows 10 SDK 上进行了封装
  • Flutter Overlay、OverlayState、OverlayEntry 叠加 Toast Demo

    叠加组件 可以悬浮在其他组件上边 我们通常使用他开发Toast PopupWindow弹窗等 虽然可以直接创建Overlay 但最常见的是在WidgetsApp或MaterialApp中使用导航器创建的叠加层 使用方法 获取实例 Overl
  • ajax用iframe,使用ajax Post请求更新iframe内容

    我正在制作Rich文本编辑器 我有一个textarea和一个iframe 我想更新一个iframe内容点击某个按钮 其中ajax post请求传递给它textareas值 这是我的HTML代码 这是js view function func
  • 微服务容器化实践——微服务引入的问题和解决方案

    文章目录 什么是微服务 微服务的不足 微服务的好处 微服务架构引入的问题及解决方案 单体架构与微服务架构的对比 什么是微服务 使用一套小服务来开发单个应用的方式 每个服务运行在独立的进程里 一般采用轻量级的通讯机制互联 并且它们可以通过自动
  • 数据库:存放变长记录的Page类代码实现

    原文链接 https littlefish33 cn DataBase SimplePage 设计思路 代码实现 Page类的初始化结构 插入记录的一种情况 删除记录 插入记录的另一种情况 排序 总结 设计思路 文章实现的思路大致参考教材D
  • vue项目关闭提交代码时的代码校验(整理)

    赋链接一份 其他博主文章 记录 vue项目关闭提交代码时的代码校验 vue vue项目一般会有一个提交代码时的校验 一般提交需要git commit m no verify 才能跳过校验 不想每次提交都输入 no verify可以进行如下配
  • C++operator()(重载小括号运算符)

    在C 语言中有时候需要重载运算符 今天我们主要介绍它主要应用的场合 仿函数 先考虑一个简单的例子 假设有一个vector 你的任务是统计长度小于5的string的个数 如果使用count if函数的话 你的代码可能长成这样 bool Len
  • CESM2 实验笔记

    文章目录 一 关于重启 运行方式 重启文件 初始文件 1 重新启动 RESTART 1 1 关于重启文件 2 RUN TYPE 初始化运行方式 startup branch hybrid 3 branch 或者 hybrid运行的示例 4
  • SQL注入漏洞(绕过篇)

    在学习完了SQL注入的原理 SQL注入的类型后那么可以说SQL注入已经大致了解了 但事实是现实中开发人员不可能让你这么简单就攻击到数据库 他们一般会对已输入或可输入的数据做一定限制 这篇文章我主要对SQL注入中代码或者waf过滤的绕过做一次
  • 网络安全设备之防火墙技术详解

    一 防火墙概述 1 网络防火墙简介 无论是大中型企业网络 还是小型家庭办公网络 对网络安全方面的要求一直保持上升趋势 微软公司的官方网站尚且难逃黑客的魔爪 普通的中小网络更是难以抵抗了 解决网络安全问题最常用的防护手段就是安装网络防火墙 对
  • 2023最新CISP模拟考试题库及答案(一)

    1 在橙皮书的概念中 信任是存在于以下哪一项中的 A 操作系统 B 网络 C 数据库 D 应用程序系统 答案 A 备注 标准和法规 TCSEC 2 下述攻击手段中不属于DOS攻击的是 A Smurf攻击 B Land攻击 C Teardro
  • 593. Valid Square

    Given the coordinates of four points in 2D space return whether the four points could construct a square The coordinate