近期论坛无法登录的解决方案


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 1845|回复: 6
收起左侧

Zillow phone interview

[复制链接] |试试Instant~ |关注本帖
johnnywsd 发表于 2015-5-11 13:25:55 | 显示全部楼层 |阅读模式

2015(4-6月) 码农类 硕士 全职@Zillow - 网上海投 - 技术电面 |Other在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
Zillow

Given  a sorted array of integers. Find the median of the items that greater than or equal to an threashold.

int find_median( int[] array, int threashold)

For example:.鐣欏璁哄潧-涓浜-涓夊垎鍦
array = [ 1, 2, 3, 4, 5, 6, 7, 8, 9]
threashold = 5.1point3acres缃
return median = 7


. from: 1point3acres.com/bbs

评分

1

查看全部评分

 楼主| johnnywsd 发表于 2015-5-11 13:26:59 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
  1. class Solution:

  2.     def find_median(self, array, threashold):
  3.         lst = [x for x in array if x >= threashold]. 1point3acres.com/bbs
  4.         length = len(lst)
  5.         if length == 0:
  6.             return 0
  7.         elif length % 2 == 0:
  8.             m1 = length / 2
  9.             m2 = length / 2 - 1
  10.             return (lst[m1] + lst[m2]) / 2
  11.         else:
  12.             m = length / 2
  13.             return lst[m]
复制代码
Running Time: O(n).
回复 支持 反对

使用道具 举报

 楼主| johnnywsd 发表于 2015-5-11 13:28:59 | 显示全部楼层
关注一亩三分地微博:
Warald
  1. class Solution:
  2. .1point3acres缃
  3.     def find_median(self, array, threashold):. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  4.         first_idx = self._find_first_idx(array, threashold) 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  5.         lst = array[first_idx:]. 1point3acres.com/bbs
  6.         length = len(lst)
  7.         if length == 0:
  8.             return 0
  9.         elif length % 2 == 0:
  10.             m1 = length / 2
  11.             m2 = length / 2 - 1
  12.             return (lst[m1] + lst[m2]) / 2
  13.         else:
  14.             m = length / 2.鏈枃鍘熷垱鑷1point3acres璁哄潧
  15.             return lst[m]
  16. . 1point3acres.com/bbs
  17.     def _find_first_idx(self, array, threashold):
  18.         l = 0. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  19.         r = len(array) - 1. from: 1point3acres.com/bbs
  20.         while l <= r:.鏈枃鍘熷垱鑷1point3acres璁哄潧
  21.             m = (l + r) / 2
  22.             mid = array[m]
  23.             mid_pre = array[m - 1] if m - 1 >= 0 else None
  24.             if mid == threashold and \
  25.                     (mid_pre is None or mid_pre < threashold):
  26.                 return m
  27.             elif mid == threashold and mid_pre == threashold:
  28.                 r = m - 1. visit 1point3acres.com for more.
  29.             elif mid > threashold:
  30.                 r = m - 1
  31.             elif mid < threashold:
  32.                 l = m + 1
  33.         return l
复制代码
Running Time: O(log n)
回复 支持 反对

使用道具 举报

 楼主| johnnywsd 发表于 2015-5-11 13:29:38 | 显示全部楼层
  1. import unittest. Waral 鍗氬鏈夋洿澶氭枃绔,
  2. from solution import Solution
  3. from solution import Solution as Solution2


  4. . 鍥磋鎴戜滑@1point 3 acres
  5. class Test(unittest.TestCase):. From 1point 3acres bbs

  6.     def test1(self):
  7.         s = Solution(). from: 1point3acres.com/bbs
  8.         array = [1,2,3,4,5,6,7,8,9]
  9.         threashold = 5
  10.         res = s.find_median(array, threashold)
  11.         self.assertEqual(res, 7). from: 1point3acres.com/bbs
  12.         s2 = Solution2()
  13.         res = s.find_median(array, threashold)
  14.         self.assertEqual(res, 7)

  15.     def test2(self):
  16.         s = Solution()
  17.         array = [1,2,3,4,5,6,7,8,9]
  18.         threashold = 9
  19.         res = s.find_median(array, threashold)
  20.         self.assertEqual(res, 9). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  21.         s2 = Solution2()
  22.         res = s.find_median(array, threashold).鐣欏璁哄潧-涓浜-涓夊垎鍦
  23.         self.assertEqual(res, 9)
  24. . Waral 鍗氬鏈夋洿澶氭枃绔,
  25.     def test3(self):
  26.         s = Solution()
  27.         array = [1,2,3,4,5,6,7,8,9]
  28.         threashold = 0
  29.         res = s.find_median(array, threashold)
  30.         self.assertEqual(res, 5)-google 1point3acres
  31.         s2 = Solution2()
  32.         res = s.find_median(array, threashold)
  33.         self.assertEqual(res, 5)

  34.     def test4(self):
  35.         s = Solution()
  36.         array = [1,2,3,4,5,6,7,8,9]. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  37.         threashold = 2
  38.         res = s.find_median(array, threashold)
  39.         self.assertEqual(res, 5)
  40.         s2 = Solution2()
  41.         res = s.find_median(array, threashold). Waral 鍗氬鏈夋洿澶氭枃绔,
  42.         self.assertEqual(res, 5). From 1point 3acres bbs

  43.     def test5(self):
  44.         s = Solution()
  45.         array = [1,2,3,4,5,6,7,8,9]
  46.         threashold = 10
  47.         res = s.find_median(array, threashold).鐣欏璁哄潧-涓浜-涓夊垎鍦
  48.         self.assertEqual(res, 0)
  49.         s2 = Solution2()
  50.         res = s.find_median(array, threashold). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  51.         self.assertEqual(res, 0). from: 1point3acres.com/bbs
  52. if __name__ == '__main__':. visit 1point3acres.com for more.
  53.     unittest.main(verbosity=2)
复制代码
回复 支持 反对

使用道具 举报

RichardCen 发表于 2015-11-8 12:56:28 | 显示全部楼层
请问是假设threshold在array中吗?就是说会不会有下面这种情况:
array = [1, 2, 3, 4, 6, 7, 8, 9]
threashold = 5
回复 支持 反对

使用道具 举报

sevensevens 发表于 2015-11-21 18:00:40 | 显示全部楼层
RichardCen 发表于 2015-11-8 12:56
请问是假设threshold在array中吗?就是说会不会有下面这种情况:
array = [1, 2, 3, 4, 6, 7, 8, 9]
thre ...
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
无所谓啊 大于也符合啊
回复 支持 反对

使用道具 举报

dou.bupt 发表于 2016-4-21 21:09:31 | 显示全部楼层
我刚面的,也是这个题目
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-6-23 22:05

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表