- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
刚刚接受了 TripAdvisor 的电话面试(没有成功)。
我得到了下面的代码并要求我实现 findBestTravelAlert
(用 Java)。
给定一个 TravelAlert 对象列表,找到针对特定位置显示的最佳旅行警报。请参阅 http://www.tripadvisor.com/Tourism-g147306-Haiti-Vacations.html 中的示例
class TravelAlert {
int id;
String message;
int locationId;
}
class Location {
int locationId;
int parentLocationId; // -1 if no parent, location is hierarchy
String name;
static Location findLocation(int locationId) {...}
}
class TravelAlertStore {
private List<TravelAlert> lAlerts; // already populated, static
// Return null if no alert
TravelAlert findBestTravelAlert(int locationId) {
// implement this
}
}
示例:如果我们有 3 个旅行警报,一个在波士顿,一个在马萨诸塞州,一个在美国:
我当时的做法很幼稚,但这是我在压力下所能想到的:
搜索 TravelAlerts
列表并查看 locationId
是否与我们的 locationId
匹配。如果不是,请重复搜索并检查是否与父级的 locationId
匹配。如果在此过程中的任何时候我们找到匹配项,则返回该 TravelAlert
。如果我们到达流程的末尾(即没有父位置),则返回 null
。
代码如下:
TravelAlert findBestTravelAlert(int locationId) {
TravelAlert current_alert = searchList(locationId, lAlerts);
if(current_alert != null) {
return current_alert;
}
else {
int parentLocationId = findLocation(locationId).parentLocationId;
if(parent_locId == -1)
return null;
else {
return findBestTravelAlert(parentLocationId);
}
}
}
TravelAlert searchList(int locationId, List<TravelAlert> cur_list) {
if(cur_list == null) {
return null;
}
else if(cur_list.locationId == locationId) {
return cur_list;
}
else {
searchList(locationId, cur_list.next())
}
}
时间复杂度是O(nk),其中n是TravelAlerts列表的长度,k是列表的高度位置层次树。
所以,我的问题是:
- Is there a better algorithm for doing this, and
- Is there a better way of implementing my algorithm?
我确定第二个问题的答案是肯定的;如果我对 Java 更熟悉的话,肯定有我可以使用的内置方法。
如有任何帮助,我们将不胜感激。祝所有 future 的申请者好运!
最佳答案
1) 您的searchList()
方法不起作用(甚至无法编译)。 List
上没有 locationId
字段,当您尝试进行递归调用时,您试图将列表中的元素传递到第二个参数,其中列表是预期。
2) 您既没有遵循 Sun 事实上的标准编码约定,也没有遵循示例的编码约定。
3) 通常,递归比循环效率低(因为你必须保留大量堆栈帧而不是,比如说,数组中的单个指针/索引) - 因为你的两个递归函数都是尾递归的它们都可以用循环代替。
没有构建更好的数据结构(例如,位置 id 到旅行警报的 Map
),或者不知道旅行警报列表已排序(您可能会因提及而获得一些荣誉) ,您可能可以通过预先计算位置 ID 列表(即从位置到树顶部的链)然后遍历旅行警报列表一次(假设它比深度大得多)来节省一些时间位置树)并将每个警报与位置 ID 列表进行比较以确定最佳匹配。
关于java - TripAdvisor 采访。有没有比我给的算法更好的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9383961/
我是 python3 网络抓取的新手。我想抓取迪拜所有酒店的评论,但问题是我只能抓取我在 url 中描述的酒店评论。谁能告诉我如何在不隐式提供每家酒店的网址的情况下获得所有酒店评论? import r
我的目标是在我的应用程序中与其他排名系统一起显示 TripAdvisor 评分排名。请记住,我的应用程序是 B2B 应用程序,而不是 B2C。 即使阅读了开发人员文档,我仍然无法理解的是我最终应该要求
我正面临网络抓取问题。我打算在 tripadvisor 上收集一些评论。我想使用 rvest 并获得所有语言的评论。来自 this questions我知道一种可能的方法是在 url 的末尾使用 ?f
我们目前正在开展一个 NLP 项目,需要一个旨在从 tripadvisor.com 中提取的语料库。我们期望输出有两种类型:评论和该评论的评级。我的问题是: 有没有最适合此目的的抓取工具?一定要简单易
我有一个场景,我需要单击tripadvisor内的气泡评级小部件的第五个气泡。 HTML 代码是: 我正在尝试使用以下代码片段: Actions action = new Actions(dri
在网站的页脚中,我想包含社交小部件。 Facebook 一个工作得很好,Tripadvisor 有很多行代码,而且没有真正的风格,跳出我的页脚等。 我最终如何为未设置样式的小部件设置样式?如果我更改代
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭1
我一直在 BS4 中构建一个网络抓取工具,但遇到了困难。我正在使用 Trip Advisor 作为我将要追踪的其他数据的测试,但无法隔离“整个”评论的标签。这是一个例子: https://www.tr
刚刚接受了 TripAdvisor 的电话面试(没有成功)。 我得到了下面的代码并要求我实现 findBestTravelAlert(用 Java)。 给定一个 TravelAlert 对象列表,找到
我想获取我正在使用 TripAdvisor API 的特定酒店的评分和评论。 我得到了这个链接: api.tripadvisor.com/api/partner/2.0/location/**8957
我想获取我正在使用 TripAdvisor API 的特定酒店的评分和评论。 我得到了这个链接: api.tripadvisor.com/api/partner/2.0/location/**8957
我正在尝试将 Tripadvisor 小部件 (rave) 添加到通过 Ajax 加载的页面。这是小部件代码: Read 37 reviews of Bond
我正在使用 Python-Scrapy 来删除 tripadvisor 成员(member)页面的评论。这是我正在使用的网址:http://www.tripadvisor.com/members/sc
在 TripAdvisor.com 景点页面上,景点网站的链接似乎以某种方式加密。这是一个例子: Website 这个链接是如何建立的,这样做的原因是什么? 最佳答案 aHref 值是一个
嗨,我是 angularjs 新手。我想向我的 angularjs 应用程序添加一个 tripadvisor 小部件。小部件代码如下:
我想知道如何从 Trip Advisor Api 获取特定地点的所有评论。现在我的电话是 http://api.tripadvisor.com/api/partner/2.0/location/SOM
我正在尝试抓取特定 TripAdivsor 页面的所有图像,但在 Selenium 中使用 find_elements_by_class_name 函数时,它没有给我任何值。我很困惑,因为这是我想要迭
我正在尝试将 Tripadvisor 评分小部件添加到我的 React 网站(请参阅下面的代码)。目前,只有 Tripadvisor 日志正在加载,没有评级信息。我认为小部件中的脚本没有运行,我不确定
本周,我开始为一位经营旅游公司的家庭成员开发我的第一个 WordPress 网站,该成员有一个非常过时的网站,我决定从头开始构建该网站。 一切都很顺利,直到我决定将他的一些 TripAdvisor 小
来自 this页面,我想抓取列表“迈阿密的事件类型”(您可以在页面末尾附近找到它)。这是我到目前为止所拥有的: import requests from bs4 import BeautifulSou
我是一名优秀的程序员,十分优秀!