平分的直线 牛客网 程序员面试金典 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:476k
vector<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.0
centeray = (A[0].y+A[1].y+A[2].y+A[3].y)/4.0
centerbx = (B[0].x+B[1].x+B[2].x+B[3].x)/4.0
centerby = (B[0].y+B[1].y+B[2].y+B[3].y)/4.0
ret = []
ret.append((centeray-centerby)/(centerax-centerbx))
ret.append(centeray- ret[0] * centerax)
return ret;

最新文章

  1. SQLSERVER走起 APP隆重推出
  2. Autodesk正在招聘Civil、Infraworks金牌支持工程师(Premium Support Specialist)
  3. 如何在IIS7/7.5上配置IISADMPWD
  4. [bzoj1618][Usaco2008 Nov]购买干草
  5. iOS:项目中疑难Crash问题集锦
  6. android:imeOptions属性(转)
  7. [maven] 常用仓库地址
  8. 两个在线编写C++代码的网站
  9. Storm流分组介绍
  10. jquery 实现table的动态合并列
  11. unity零基础开始学习做游戏(六)背景给我“滚”~
  12. python中剔除字典重复项,可以使用集合(set)。
  13. java HttpClient 忽略证书的信任的实现 MySSLProtocolSocketFactory
  14. 队列模拟基本操作I
  15. leetcode1027
  16. c# 序列化BinaryFormatter、SoapFormatter和XmlSerializer的区别
  17. windows上测试磁盘io性能
  18. python中的pop
  19. iframe页面刷新问题
  20. 在linux下使用sqlcmd

热门文章

  1. Elasticsearch(ES)分词器的那些事儿
  2. 开源的物联网技术平台(Thingsboard)
  3. 超详细:command not found:scrapy解决办法(Mac下给zsh添加scrapy环境变量)
  4. Java基础系列(5)- 使用IDEA开发
  5. Apache AB(1) - 快速使用
  6. Kubernetes-Pod介绍(四)-Deployment
  7. 为什么Charles中的中文展示成数字、英文字符串
  8. 测试开发【提测平台】分享11-Python实现邮件发送的两种方法实践
  9. java 请求第三方接口 GET\POST 实现方法
  10. docker采用registry部署简易仓库