平分的直线 牛客网 程序员面试金典 C++ Python
平分的直线 牛客网 程序员面试金典 C++ Python
题目描述
在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。假定正方形的上下两条边与x轴平行。
给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。
测试样例:
[(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1),(2,0),(2,1)]
返回:[0.0,0.5]
C++
/*
struct Point {int x;int y;Point() :x(0), y(0) {}Point(int xx, int yy) {x = xx;y = yy;}
};*/
class Bipartition {
public://run:5ms memory:476kvector<double> getBipartition(vector<Point> A, vector<Point> B) {double centerax = (A[0].x+A[1].x+A[2].x+A[3].x)/4.0;double centeray = (A[0].y+A[1].y+A[2].y+A[3].y)/4.0;double centerbx = (B[0].x+B[1].x+B[2].x+B[3].x)/4.0;double centerby = (B[0].y+B[1].y+B[2].y+B[3].y)/4.0;vector<double> ret;ret.push_back((centeray-centerby)/(centerax-centerbx));ret.push_back(centeray- ret[0] * centerax);return ret;}
};
Python
# class Point:
# def __init__(self, a=0, b=0):
# self.x = a
# self.y = b
class Bipartition:def getBipartition(self, A, B):centerax = (A[0].x+A[1].x+A[2].x+A[3].x)/4.0centeray = (A[0].y+A[1].y+A[2].y+A[3].y)/4.0centerbx = (B[0].x+B[1].x+B[2].x+B[3].x)/4.0centerby = (B[0].y+B[1].y+B[2].y+B[3].y)/4.0ret = []ret.append((centeray-centerby)/(centerax-centerbx))ret.append(centeray- ret[0] * centerax)return ret;
平分的直线 牛客网 程序员面试金典 C++ Python相关推荐
- 原串反转 牛客网 程序员面试金典 C++ Python
原串反转 牛客网 程序员面试金典 C++ Python 题目描述 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量). 给定一个string iniS ...
- 空格替换 牛客网 程序员面试金典 C++ Python
空格替换 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个方法,将字符串中的空格全部替换为"%20".假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实 ...
- 集合栈 牛客网 程序员面试金典 C++ Python
集合栈 牛客网 程序员面试金典 C++ Python 题目描述 请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈.该数据结构应支持与普通 ...
- 回文链表 牛客网 程序员面试金典 C++ Python
回文链表 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个函数,检查链表是否为回文. 给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文. 测试样例 ...
- 双栈排序 牛客网 程序员面试金典 C++ Python
双栈排序 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中. ...
- 整数转化 牛客网 程序员面试金典 C++ Python
整数转化 牛客网 程序员面试金典 C++ Python 题目描述 编写一个函数,确定需要改变几个位,才能将整数A转变成整数B. 给定两个整数int A,int B.请返回需要改变的数位个数. 测试样例 ...
- 确定字符互异 牛客网 程序员面试金典 C++ Python
确定字符互异 牛客网 程序员面试金典 C++ Python 题目描述 请实现一个算法,确定一个字符串的所有字符是否全都不同.这里我们要求不允许使用额外的存储结构. 给定一个string iniStri ...
- 无缓存交换 牛客网 程序员面试金典 C++ Python
无缓存交换 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个函数,函数内不使用任何临时变量,直接交换两个数的值. 给定一个int数组AB,其第零个元素和第一个元素为待交换的值,请返回 ...
- 平衡二叉树检查 牛客网 程序员面试金典 C++ Python
平衡二叉树检查 牛客网 程序员面试金典 C++ Python 题目描述 实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1. 给定指向树根结点的指针T ...
最新文章
- Vue04 -- 计算属性用法(v-for的筛选排序)
- 把伪需求扼制在摇篮里-B端产品需求方法论
- 梅朵是藏语鲜花的意思
- C++中的继承(一)
- qs.parse和qs.stringify
- innodb下的mvcc_从InnoDB了解MVCC
- python3 re模块_python3+ 模块学习 之 re
- 网页如何开启Gzip压缩
- Javascript的交互性
- PHP导入Excel文件后缀xlsx与xls的处理问题
- WSUS管理控制台打开报错
- word2vec思考:word2vec为什么不使用非线性激活函数?
- PostgreSQL死锁了怎么办?
- 基于SSM的企业OA办公系统
- oracle静默安装报错,静默安装Oracle11gR2 [FATAL] [INS-32015]报错
- Siemens NX 1965下载及教程
- BLAG: Improving the Accuracy of Blacklists
- 参加一场技术分享带给我的思考
- HP Unix 命令整理
- stm32vet6外部中断扫描矩阵键盘