平分的直线 牛客网 程序员面试金典 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相关推荐

  1. 原串反转 牛客网 程序员面试金典 C++ Python

    原串反转 牛客网 程序员面试金典 C++ Python 题目描述 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量). 给定一个string iniS ...

  2. 空格替换 牛客网 程序员面试金典 C++ Python

    空格替换 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个方法,将字符串中的空格全部替换为"%20".假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实 ...

  3. 集合栈 牛客网 程序员面试金典 C++ Python

    集合栈 牛客网 程序员面试金典 C++ Python 题目描述 请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈.该数据结构应支持与普通 ...

  4. 回文链表 牛客网 程序员面试金典 C++ Python

    回文链表 牛客网 程序员面试金典  C++ Python 题目描述 请编写一个函数,检查链表是否为回文. 给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文. 测试样例 ...

  5. 双栈排序 牛客网 程序员面试金典 C++ Python

    双栈排序 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中. ...

  6. 整数转化 牛客网 程序员面试金典 C++ Python

    整数转化 牛客网 程序员面试金典 C++ Python 题目描述 编写一个函数,确定需要改变几个位,才能将整数A转变成整数B. 给定两个整数int A,int B.请返回需要改变的数位个数. 测试样例 ...

  7. 确定字符互异 牛客网 程序员面试金典 C++ Python

    确定字符互异 牛客网 程序员面试金典 C++ Python 题目描述 请实现一个算法,确定一个字符串的所有字符是否全都不同.这里我们要求不允许使用额外的存储结构. 给定一个string iniStri ...

  8. 无缓存交换 牛客网 程序员面试金典 C++ Python

    无缓存交换 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个函数,函数内不使用任何临时变量,直接交换两个数的值. 给定一个int数组AB,其第零个元素和第一个元素为待交换的值,请返回 ...

  9. 平衡二叉树检查 牛客网 程序员面试金典 C++ Python

    平衡二叉树检查 牛客网 程序员面试金典 C++ Python 题目描述 实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1. 给定指向树根结点的指针T ...

最新文章

  1. Vue04 -- 计算属性用法(v-for的筛选排序)
  2. 把伪需求扼制在摇篮里-B端产品需求方法论
  3. 梅朵是藏语鲜花的意思
  4. C++中的继承(一)
  5. qs.parse和qs.stringify
  6. innodb下的mvcc_从InnoDB了解MVCC
  7. python3 re模块_python3+ 模块学习 之 re
  8. 网页如何开启Gzip压缩
  9. Javascript的交互性
  10. PHP导入Excel文件后缀xlsx与xls的处理问题
  11. WSUS管理控制台打开报错
  12. word2vec思考:word2vec为什么不使用非线性激活函数?
  13. PostgreSQL死锁了怎么办?
  14. 基于SSM的企业OA办公系统
  15. oracle静默安装报错,静默安装Oracle11gR2 [FATAL] [INS-32015]报错
  16. Siemens NX 1965下载及教程
  17. BLAG: Improving the Accuracy of Blacklists
  18. 参加一场技术分享带给我的思考
  19. HP Unix 命令整理
  20. stm32vet6外部中断扫描矩阵键盘

热门文章

  1. 郭海鷹導師大學鑒賞課程延伸知識點之2019年6月6日薈萃
  2. 未来中国最赚钱的十大行业
  3. 游戏开发干货 | GUI是如何帮助游戏进行叙事的?
  4. Linux - 进程控制(进程替换)
  5. 让自己成为一个有趣的人
  6. 科技向善•共同富裕,数字经济风口上的中国建筑供应链发展趋势
  7. MD5加密防止文件篡改
  8. 分享 朋友圈 微博 QQ空间
  9. dell服务器R730存储升级
  10. 高中可以学计算机吗,我是一名高中生想学计算机专业请问有前途吗?