【面经】京东搜索广告算法一面

一面面了 2 个小时,把项目问了个底朝天

1. 项目

面试官问的超级细,问到底朝天的那种,一个项目问了一个小时

  1. 激活函数选啥
  2. 调参

2. 手撕代码

1、 删除字符串中连续重复的字符
只保留一个字符(比如:“aabbadc” -> “abadc”, “aaaaadcbad” -> adcbad)
要求空间复杂度O(1)

remove2() 有问题,因为 python 没办法做字符串的赋值,后续再完善

def remove(s):
  new_s = []
  for i in range(len(s)):
    if s[i] != s[i-1]:
      new_s.append(s[i])
    else:
      pass
  return new_s

def remove2(s):

  pre = 0
  cur = 1
  for i in range(len(s)):
    if cur != pre:
      s[pre] = s[cur]
      cur += 1
      pre += 1
    else:
      pass
  return s
  
# if __name__ == '__main__':
# s = 'aaaaadcbad'
  
# res = remove2(s)
# print(res)

2、【青蛙跳台阶】
有一座高度是N级台阶的楼梯,从下往上走
每跨一步只能向上1级或者2级台阶
要求用程序求出一共有多少种走法
尽可能降低时间、空间复杂度

def numWay(N):
  # dp = [0] * (N+1)
  # dp[0] = 0
  pre = 0
  # dp[1] = 1
  cur = 1
  for i in range(2, N+1):
    # dp[i] = dp[i-1] + dp[i-2]
    temp = cur
    cur = pre + cur
    pre = temp
  # return dp[-1]
  return cur
  
if __name__ == '__main__':
  N = 3
  res = numWay(N)
  print(res)

3、概率题:(x1, p1), (x2, p2), …
扔硬币直到连续两次出现正面,求扔的期望次数。硬币正面出现概率1/3,反面概率2/3
假设期望次数为E

解答:

  1. 反:0.5(1+E)
  2. 正-反:0.25(2+E)
  3. 正-正:0.252
    E = 0.5(1+E) + 0.25(2+E) + 0.25
    2
    E = 6

参考:
投骰子连续两次是 6就停止,求投掷的次数的期望 & 系列变形(字节跳动面试)

全部评论

相关推荐

不愿透露姓名的神秘牛友
2025-12-18 11:21
优秀的大熊猫在okr...:叫你朋友入职保安,你再去送外卖,一个从商,一个从政,你们两联手无敌了,睁开你的眼睛看看,现在是谁说了算(校长在背后瑟瑟发抖)
选实习,你更看重哪方面?
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务