ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

依图科技算法工程化日常实习一面

2021-12-25 23:03:49  阅读:185  来源: 互联网

标签:rp 依图 dic start lp ans 实习 工程化 指针


时长大约1个小时

开头是自我介绍,然后和面试官聊了一下自己用的语言,还有自己是统计学专业的,所以科班知识比较少 上来是手撕一道代码:最长无重复子串,要求输出子串 一开始思路是:用左指针和右指针去定位现在检索的子串,如果右指针指的子串在字典中,就比较一下最长长度和左右指针的间距。 如果更长的话,就更新最长长度以及记录最长子串位置的start和end,再将左指针更新成重复字符在字典中的索引,右指针等于左指针,重置字典。 不在字典中的话,就把字符和索引放入字典,右指针移动一个位置。有个临界条件,当右指针到字符串最后的时候,还需要比较一下和最长长度的距离,然后更新。 我的基础一般,所以一开始想的是左指针每次动一次,然后写着写着发现可以直接挪到字典中的右指针位置,所以大概花了20分钟左右。 之后的话就是类似像智力题这样子 第一题是甲乙扔硬币,扔到正面获胜,甲先扔,获胜概率?这题秒回答了2/3。算是涉及到自己专业的概率论知识,比较简单,一个等比收敛求和就可以了。 第二题是1到100这些数,然后随机抽掉一个数,再打乱放入一个数组中,问怎么找到这个抽掉的数? 这个也算是秒回答,当时想着这题是不是要说算法,但是我自己脱口而出了5050减数组总和就可以了(从小刻在脑子里的5050)。然后反应过来这题面试官确实就是不想让我说代码的算法,要用数学知识回答。 第二题和第一题类似,然后抽掉两个数。一开始思路也是类似,知道x+y的总和,然后是求不定方程解就可以了,枚举检索一下。 面试官说还有没有更快的一点,我说快排然后直接找,他说这个复杂度比你上一个还要高。 之后就是说应该是还需要在找一个关于x、y的条件然后把他算出来,后来面试官提示了一下你第一题用的加法,是不是乘法也可以,然后就知道了可以直接累乘得出xy的值,解一元二次方程就行了。 最后就聊了一下自己的项目,还有关于如果入职以后的一些问题和对我的建议。 总体感觉面试官很好,但是自身能力上确实和科班有差距,之后加油吧。 上午刚刚面完,再等二面消息。 附上自己的代码(有更好的思路欢迎分享):
 1 def findstr(s):
 2     n = len(s)
 3     if n < 2:
 4         return s
 5     start = 0;end = 0
 6     lp = 0;rp = 0
 7     ans = 0
 8     dic = {}
 9     while rp < n:
10         if s[rp] in dic:
11             if rp - lp > ans:
12                 ans = max(ans, rp - lp)
13                 start = lp
14                 end = rp - 1
15             lp = dic[s[rp]] + 1
16             rp = lp
17             dic = {}
18         else:
19             dic[s[rp]] = rp
20             rp += 1
21         if rp == n - 1 and s[rp] not in dic and rp - lp + 1 > ans:
22             ans = max(ans, rp - lp + 1)
23             start = lp
24             end = rp
25     return s[start:end+1]

 

标签:rp,依图,dic,start,lp,ans,实习,工程化,指针
来源: https://www.cnblogs.com/menelaus/p/15731882.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有