<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          聊聊我的一次真實 Python 面試經歷

          共 1895字,需瀏覽 4分鐘

           ·

          2020-04-26 23:20


          6c35ea1d98150d56bc4c4c5bab3d659d.webp


          作者:SyntaxError

          出處:segmentfault.com/a/1190000022455160


          首先我挺喜歡這家公司的面試風格的,也是比較務實的吧。無奈自己的心理因素和技術水平都不好,導致面試失敗。再接再厲吧

          1.一上來就是編程題三連

          1.1 大概意思就是:倆列表a b,如果a中的元素在b中,那么就保存此元素在a中的索引值,最后統(tǒng)一輸出所有索引值。要求:時間復雜度小于O(n)

          fedee84732d41284b1839f69ccf3bf72.webp

          這個我當時想到的是循環(huán)遍歷a,然后判斷是否i in b,但是這個時間復雜度是O(n2),GG。最后面試官提醒了我一下hashmap,瞬間捶胸頓足……。最后自己想了一下,可以將b先轉成字典,然后再使用in。

          a?=?[5,3,1,5,4]
          b?=?[5,3]
          d?=?{}
          for?i?in?b:
          ????d[i]?=?0
          res?=?[]
          l?=?len(a)
          for?i?in?range(l):
          ????if?a[i]?in?d:
          ????????res.append(i)
          print(res)


          1.2 如圖,輸入為這樣,輸出為那樣,寫吧……

          輸入幾組數據,pid為-1的代表根節(jié)點。如果數據為非根節(jié)點,那么就要搜索此節(jié)點直至找到根節(jié)點。

          f8d43e37938211bbce88316551d38bef.webp

          這個其實我知道考的是樹的遍歷,但是沒見過這種形式的題,要自己構建輸入數據的形式,一下子就懵了,再加上面試官在那一直盯著……唉,承認自己能力不足吧。后續(xù)自己寫了一遍,大家可以看一下,有問題直接下面評論就可以。

          d?=?{
          ????"A":"-1",
          ????"A-1":"A",
          ????"A-2":"A",
          ????"A-3":"A",
          ????"A-2-1":"A-2",
          ????"A-2-2":"A-2",
          ????"A-2-3":"A-2"
          }
          res?=?[]
          def?func(node):
          ????array.append(node[0])
          ????if?node[1]?==?"-1":
          ????????return
          ????func((node[1],d[node[1]]))

          for?i?in?d.items():
          ????array?=?[]
          ????func(i)
          ????string?=?"/".join(array[::-1])
          ????res.append("/"+string)

          for?j?in?res:
          ????print(j)


          1.3 這個題太經典了。最短路徑和。

          b170d49453554ea7a904aac63c24dcc3.webp

          要注意是從第一行走到最后一行,而且只能向下或者斜向下走(我當時沒看清就寫,寫成了從左上走到右下……)。我這里寫的是動態(tài)規(guī)劃的解法。Leetcode上有原題,解法不唯一。

          array?=?[[1,8,5,2],
          ?????????[4,1,7,3],
          ?????????[3,6,2,9]]
          x?=?len(array)
          y?=?len(array[0])
          dp?=?[[0?for?i?in?range(y)]?for?j?in?range(x)]
          #?遍歷順序是每行內的每列。所以遍歷array中第一行只執(zhí)行到if,dp中第一行就確定了,然后再確定dp第二行。
          #?要注意兩個邊界條件
          for?i?in?range(x):
          ????for?j?in?range(y):
          ????????if?i?==?0:
          ????????????dp[i][j]?=?array[i][j]
          ????????elif?j?==?0:
          ????????????dp[i][j]?=?array[i][j]?+?min(dp[i-1][j],?dp[i-1][j+1])
          ????????elif?j?==?y-1:
          ????????????dp[i][j]?=?array[i][j]?+?min(dp[i-1][j-1],dp[i-1][j])
          ????????else:
          ????????????dp[i][j]?=?array[i][j]?+?min(dp[i-1][j-1],dp[i-1][j],dp[i-1][j+1])

          #?[[1,?8,?5,?2],?
          #??[5,?2,?9,?5],?
          #??[5,?8,?4,?14]]
          print(min(dp[-1]))
          #?4


          2.其他面試問題

          這里就不寫答案了,大家可以百度或google一下。

          2.1 什么是事務,事務的出現是為了解決什么問題

          2.2 什么是聚簇索引

          2.3 假如沒有主鍵,InnoDB會以哪個字段建立主鍵

          2.3 聊聊RabbitMQ中的connection與channel的關系,還有建立channel的一些規(guī)范或注意事項。

          好文章,我在看??
          瀏覽 70
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  激情综合网五月丁香 | 69成人精品 | 青娱乐一区二区三区 | 黄色片日逼操骚逼 | 黄色片网站国产干 |