Valid Square

2024-03-28 21:18
文章标签 valid square

本文主要是介绍Valid Square,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述:

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: 

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

分析:

如果四个点两两之间的距离满足:1)存在四个边段距离相等 2)存在两个对角线距离相等。则构成四边形。

注意:在求点距离的时候需要注意是否存在整数溢出,由于给定范围是[-10000,10000],最大值不会超过2^32 -1,因此不用担心

代码:

class Solution {public boolean validSquare(int[] p1, int[] p2, int[] p3, int[] p4) {int[] d = new int[6];d[0] = distance(p1, p2);d[1] = distance(p1, p3);d[2] = distance(p1, p4);d[3] = distance(p2, p3);d[4] = distance(p2, p4);d[5] = distance(p3, p4);Arrays.sort(d);return d[0] == d[3] && d[3]<d[4] && d[4] == d[5];}private int distance(int[] p1, int[] p2) {int x = Math.abs(p1[0] - p2[0]);int y = Math.abs(p1[1] - p2[1]);return x * x + y * y;}
}



这篇关于Valid Square的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/856712

相关文章

解决The valid characters are defined in RFC 7230 and RFC 3986

解决方法: 一、更换低版本的Tomcat;(我选的方案) 二、参考:https://blog.csdn.net/qq_32365919/article/details/82055800

leetCode#125. Valid Palindrome

Description Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example, “A man, a plan, a canal: Panama” is a palindrome. “race a car

leetcode#32. Longest Valid Parentheses

题目 Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is "()", wh

记一次knife4j文档请求异常 SyntaxError: Unexpected token ‘<‘, ... is not valid JSON

knife4j页面报错问题定位 前几天开发新接口,开发完成后想使用knife4j测试一下接口功能,突然发现访问页面报错提示:knife4j文档请求异常,但之前运行还是正常的,想想会不会与升级依赖有关系,启动其他微服务发现文档接口访问正常,排除因依赖版本升级导致在线API文档无法使用情况,还是和本服务新增接口有关系。 定位问题 首先f12打开调试台,重新刷新页面,看到console有报错提示

[LeetCode] 221. Maximal Square

题:https://leetcode.com/problems/maximal-square/description/ #题目 Given a 2D binary matrix filled with 0’s and 1’s, find the largest square containing only 1’s and return its area. Example: Input:

LeetCode - 36. Valid Sudoku

36. Valid Sudoku  Problem's Link  ---------------------------------------------------------------------------- Mean:  给定一个数独,判断这个数独是否合法. analyse: 略. Time complexity: O(N)   view

LeetCode - 32. Longest Valid Parentheses

32. Longest Valid Parentheses  Problem's Link  ---------------------------------------------------------------------------- Mean:  给定一个由'('和')'组成的字符串,求最长连续匹配子串长度. analyse: 定义一个stack<pair

LeetCode 36 Valid Sudoku

题意: 判断一个填了一部分的数独有没有解。 思路: 按照数独规则判断即可,即同一行、同一列、同一个3*3的方格内没有数字重复出现。 代码: class Solution {public:bool isValidSudoku(vector <vector<char>> &board) {const int step = 3;bool app[step * step];fo

Sum of Square Numbers

Given a non-negative integer c, your task is to decide whether there're two integers a and b such that a2 + b2 = c. Example 1: Input: 5Output: TrueExplanation: 1 * 1 + 2 * 2 = 5 Example 2: Inpu

Javascript报错Failed to execute ‘querySelectorAll‘ on ‘Document‘: ‘#123456‘ is not a valid sele

Javascript报错:Failed to execute ‘querySelectorAll’ on ‘Document’: ‘#123456’ is not a valid selector 解决方式(除开特殊符号,第一个字符必须是字母): 第一种: 将ID前面加字母,例如:document.querySelectorAll('#id123456') 第二种: 根据ID属性,例如:doc