亚马逊 在线测试题目 amazon (变种的)三叉树的最近公共祖先问题

题目意思就是找一棵按上面链接所示的树对应的上面的两个点的最小公共祖先(LCP,Least Common Father),按照比较大小来依次返回自己的父亲节点就行了。具体看代码:getfather(a)函数是找父亲的代码

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxDepth = 21;
long long three[maxDepth] , sum[maxDepth];
void init() {
    three[0] = 1;
    sum[0] = 0;
    for(int i=1;i<maxDepth;i++)
    {
        three[i] = three[i-1] * 3 ;
        sum[i] = sum[i-1] + three[i];
    }   

    for(int i = 0; i < maxDepth; i ++)
    {
        cout << three[i] << "\t";
    }
    cout << endl;

    for(int i = 0; i < maxDepth; i ++)
    {
        cout << sum[i] << "\t";
    }
    cout << endl;
    //cout << "INT_MAX\t" << INT_MAX <<endl;
}
int getfather(long long a) {
    if(a <= 3)
        return 0;
    int i;
    for(i=0;sum[i]<a;i++)
        ;
    i-- ;
    int tmp = (2+a-sum[i]) /3;
    int father = sum[i] - tmp + 1;
    return father;
}
int LCP(int a,int b) {
    while(a != b) {
        if(a > b) a = getfather(a);
        else b = getfather(b);
    }
    return a;
}
int main() {
    int a , b;
    init();
    while(scanf("%d%d" , &a,&b) != EOF) {
        //cnt = 0;
        int ans = LCP(a , b);
        printf("%d\n" , ans);
    }
    return 0;
}

其中 three array 保存3的指数
sum arry 保存截止到某一行为止,保存的数目-1,因为index是从0开始。

可以看见,sum[20] > INT_MAX 了,所以,sum中只要21个元素就能覆盖所有的 0 到 INT_MAX

同时,由于three[20]和sum[20] > INT_MAX,所以用long long 来保存。

three array:
1       3       9       27      81      243     729     2187    6561    19683   59049   177147  531441  1594323 4782969 1434890743046721        129140163       387420489       1162261467      3486784401
sum array:
0       3       12      39      120     363     1092    3279    9840    29523   88572   265719  797160  2391483 7174452 2152335964570080        193710243       581130732       1743392199      5230176600
INT_MAX 214748364

最后,交替计算当前节点的父节点,知道两者的父节点相同为止。

getFather 的计算也比较简单,和sum array 比较,找到sum[i] > node, 然后i--,知道,节点处于行的上一行。

然后计算offerset=(node-sum[i]+2)/3 就是其距离sum[i]的偏移量,所以father= sum[i]-offerset + 1;

举例:如要查找17的father,查找到 12 < 17 < 39, 所以17 处于sum[2]= 12 的下一行。

offset = (17+2 - 12) /3 = 2, 也就是说 17 的father 距离 sum[2]有两个距离。实际上是一个,

所以father = sum[2]-offset + 1 = 12 -2 + 1 = 11.

时间: 2024-10-13 01:42:36

亚马逊 在线测试题目 amazon (变种的)三叉树的最近公共祖先问题的相关文章

亚马逊 在线测试题目 amazon

分析:其实就是求矩形中某一个点到其他点的距离加权最小 方法一: 对每一个点求其到其他点的加权距离,然后比较最小.由于有M*N个点,对每一个点求加权距离是O(M*N)的,所以整体时间复杂度是O(M*M*N*N)的. 方法二: 首先做预处理,计算每一行有多少个点,每一列有多少个点,然后计算把其他行的点挪到我这一行需要的加权距离,把其他列的点挪到我这一列的加权距离, 然后对每一个点,计算挪到其所在行的代价+所在列的代价和,求出最小.时间复杂度O(M*N). code见下面,calcMIN是方法一,ca

亚马逊记AWS(Amazon Web Services)自由EC2应用

很长时间,我听到AWS能够应用,但是需要结合信用卡,最近申请了. 说是免费的,我还是扣6.28,后来我上网查了.认为是通过进行验证.像服务期满将返回. 关键是不要让我进入全抵扣信用卡支付password,验证短信什么的.吓尿了,这后面再收费也不须要统一,不哭死? 所以每一步都心惊胆战,记录下来... 没有多难,大神和土豪直接跳过... 申请一路没什么难度,就没退回去截图记录.从注冊成功后选择服务開始记录. 步骤例如以下: 选择server位置:右上角能够选择server位置.国内日本和新加坡的延

远景能源如何搞定美国的第一个客户?亚马逊AWS你一定知道底细吧

提到能源企业,你脑海里最先浮现的影像是什么?笨重的设备.恶劣的现场操作环境--这都是老黄历了.记者在与远景能源IT总监龚迅交流后发现,虽然远景能源是目前国内装机量最大的智能风机设备提供商之一,传统的风机研发和制造业务仍占据相当重要的地位,但远景能源最擅长的还是风场的全生命周期监控和管理.从业务思路.IT建设.对云服务的理解和使用等角度来衡量,远景能源更像是一家能源领域的互联网公司. 远景能源位于美国硅谷,其全球数字能源创新中心总裁是原思科公司的高管,员工平时工作中可自由地使用云服务,其风电系统的

亚马逊——不一样的电商公司

其一: 电商公司就是电子商务公司.电子商务通俗的说就是利用电子工具进行各种商务活动,如网上购物.在线电子支付等.可以说电子商务是传统商业活动的电子化和网络化.离我们最近的就是网购了,通常我们会在淘宝.天猫.聚美优品.亚马逊等购物平台上购买东西,他们已然成为了我们生活的一部分.但我们不曾留意,他们分别代表着不同的电商公司,拥有不同的理念与策略.下面我们将通过与淘宝的对比,谈一下与众不同的电商公司亚马逊公司. 亚马逊公司,是美国最大的一家网络电子商务公司,于2004年进入中国.再他的发展史上有三次定

亚马逊Q1财报转盈为亏,AWS业绩喜人!

4月24日,亚马逊发布了截至3月31日的2015年第一季度财报.财报显示,亚马逊第一季度净营收达到227.2亿美元,比去年同期的197.4亿美元增长了15%:净亏损为5700万美元,每股亏损为12美分,去年同期为净利润1.08亿美元,每股收益为23美分. 这一业绩虽然符合此前分析师的预期,但是在销售额增长的同时,亚马逊在第一季度中却转盈为亏,难免让人有些许失望. 亚马逊给出的解释是该公司仍在针对多个项目投入大量资金,如无人机送货服务和流媒体视频交易以及仓库建设等,成本的增加显然已经影响到了其盈利

最新亚马逊 Coupons 功能设置教程完整攻略!

最新亚马逊 Coupons 功能设置教程完整攻略! http://m.cifnews.com/app/postsinfo/18479 亚马逊总是有新的创意,新的功能.最近讨论很火的,就是这个 Coupons 的新功能,位于 Advertising 下面新增了 Coupons,如下图. 最新的查找亚马逊差评的方式,就看这篇! 亚马逊查找差评 ,最新再破解干货! 但是群里很多伙伴说自己的账号没看到 Coupons,小编都懂.因为小编的账号也没有(哭). 但是我们找到了新的路径,可以连接到 Coupo

股价飙升500倍,市值超过4700亿美元,从网络书店起家的亚马逊凭什么一飞冲天?

砺石导语:亚马逊股价上周创出999.00美元的历史最高价,距1000美元的关口仅有一步之遥.从一家建在自家车库里的网络图书公司,到被媒体称为"吞噬世界的怪物",亚马逊崛起的背后有着怎样的征途? 文|文媛媛 如果你在亚马逊IPO的时候投资1万美元,那么现在你会得到500万美元. 作为美国最大的电子商务公司,亚马逊股价上周创出999.00美元的历史最高价,距1000美元的关口仅有一步之遥.上周五,亚马逊股价报收于995.78美元,市值达到4730亿美元. 亚马逊公司1995年成立,是世界上

KK亚马逊无货源,他有多好你看了就知道

亚马逊公司(Amazon,简称亚马逊:NASDAQ:AMZN),是美国最大的一家网络电子商务公司,位于华盛顿州的西雅图.是网络上最早开始经营电子商务的公司之一,亚马逊成立于1995年,一开始只经营网络的书籍销售业务,现在则扩及了范围相当广的其他产品,已成为全球商品品种最多的网上零售商和全球第二大互联网企业,在公司名下,也包括了AlexaInternet.a9.lab126.和互联网电影数据库(Internet?Movie?Database,IMDB)等子公司.?亚马逊及其它销售商为客户提供数百万

亚马逊拟斥资15亿美元建航空货运中心 - Amazon to spend $1.49 bln on air cargo hub, fans talk of bigger ambitions - ReutersFebruary 1, 2017

2月1日消息,亚马逊本周二宣布将在肯塔基州开建其第一个航空货运中心,以应对高速增长的航空货运需求.亚马逊预计,该项目将带来2000个工作岗位. 据悉,该项计划总投入约为15亿美元,亚马逊或可从当地政府获得4000万美元的税收激励.但亚马逊方面尚未透露项目的相关文件审批进度.值得一提的是,全世界最大的物流中转中心UPS世界港以及FedEx最大的包裹分检中心均在肯塔基州境内. 有知情人士表示,亚马逊的这一措施将减少其对UPS和FedEx等传统货运巨头的依赖,未来有望成为他们的直接竞争对手. 去年,亚