算法群模擬面試記錄

第一場:2018年12月30日(周日),北京時間早上五點。

寫在最前面:好不容易五點爬了起來圍觀mock,結果早上周賽睡過去了,唉。orz。

面試官:wisdompeak,同學:littleRainRain

第一題:有個花圃矩陣 grid,size 是n * m,花圃上面的一個點,坐標是(x, y)上面可能有花,可能沒有花(沒有花的話,矩陣上的值為0)。如果一個Q(x,y)上有花的話,grid[x][y] = W, W代表這朵花的香氣,隨著距離這朵花越來越遠,花的香氣會逐漸減弱,減弱的關系和兩個點的曼哈頓距離成正比,比如在點 P(x1, y1),能聞到在點Q的花的香味是 f = W / (abs(x- x1) + abs(y-y1))。輸入一個P點的坐標(px, py),求在這個P點,能聞到花的香味最重的點坐標。

題解:直接二維矩陣遍歷就行。只有一點需要注意的就是曼哈頓距離為0的時候,0不能做除數,怎么處理要問面試官,不要自己yy。

follow-up,能不能讓算法更快一點?(其實我覺得這個問法不是特別的優秀,第一次聽到了比較容易懵逼,如果我是面試者的話下面不知道該怎么接。直接問具體條件有什么變化,還是新增了什么條件么)

我第一次聽到follow-up有點懵逼,我還以為難道bfs能解...但是迅速的否認了自己的想法,想象一下如果有個點距離給出的P點非常非常遠,但是它的W非常非常大,這個點也有可能是candidate。

后來面試官解釋了一下,假設這個花圃上面就幾朵花呢?然后調用query方法N次,如何加速這個算法(言下之意是這個矩陣是一個稀疏矩陣)

ok,那我們開始預處理下矩陣,把有花的坐標點給存下來,存成一個數組,假設叫flowerCoor,然后每次query的時候就從flowerCoor里面取花的坐標,然后計算。

?

第二題:leetcode 837 New 21 Game

https://leetcode.com/problems/new-21-game/description/

面試官化簡了一下這個題,他的問題是桌面上有10張撲克牌,代表[1, 10]這個區間的數字,玩家一開始有個基礎分數 score, 游戲開始,score 代表現在點數,如果 score < 17, 那么莊家隨機翻一張牌,累加score;如果 score 在[17, 21] 這個區間中,就代表莊家win;如果 score > 21 就代表玩家win。求玩家 win 的概率。

前面怎么討論的我有點記不清了,但是妹子說了一句“這個題有點遞歸的意思”,然后就開始遞歸做。遞歸可以做。(不知道如果遞歸寫全對的話,下面follow-up會不會擴大規模考 dp。不過想不到 dp不知道是 hired 還是 weak hired 了)

lc遞歸會超時,我加了記憶化遞歸也超時了 :( ,lc給的是 dp 解法。

mock的時候群里小伙伴有人說這題和 688 很像:https://leetcode.com/problems/knight-probability-in-chessboard/description/

?

第三題:leetcode 636?Exclusive Time of Functions

https://leetcode.com/problems/exclusive-time-of-functions/description/

第三題有點類似資源搶占調度的一道題。

?task 1:? start,? 0

?task 2:? start,? 2

?task 2:? end,? 3

?task 1:? end,? 4

?task 2:? start,?6

?task 2:? end,? 7

start, end just mean get schecduled, like process to CPU, only one cpu, so if task2 started, task 1 paused。

要求返回每個task占用cpu的時間。返回map也好,數組也好,都行。

用stack解,我還沒仔細想。我估計應該是用一個變量或者pair存某個任務被中斷的時間?

?

第四題:leetcode 528. Random Pick with Weight

https://leetcode.com/problems/random-pick-with-weight/description/

群主給的就是有 N 個人種,每個人種的占比,實現一個算法,這個算法每次都會返回一個人種,在調用K(K是一個很大的數)次的情況下,所有的返回值的比例滿足人種的占比。

given possibility like

chinese? 22%

american:? 5%

indian: 21%

...

各個概率之和保證為1,隨機選一個,要求符合概率,如按22.333% sample chinese..

?

妹子一開始想的有點類似于基數了,就是比如說chinese占了22%,American占了 5%,那我搞一個 100 個人的數組,前 22 個元素 代表 chinese, 23 ~ 28 個元素代表 american。然后 1 ~ 100 內隨機一個隨機數,求得。然后面試官反問,如果占比不是整數呢,比如 22.345676798878888%這種,那是不是要開一個巨大的數組存這些數。于是這個思路走進死胡同了。群里有小伙伴說,如果有個 0 ~ 1 的隨機數發生器就好了。我們可以這么思考,就是我們把概率數組求前綴和,然后隨機一個 0 ~ 1 的數,在前綴和數組中二分這個數字就可以了。

題解:前綴和 + 二分。

?

轉載于:https://www.cnblogs.com/zhangwanying/p/10199941.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249915.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249915.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249915.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

js對象排序

Object.keys(objs).sort()可以獲取到排好序的keysvar objs {f: {id: 2,name: 2}, a: {id: 3,name: 3}, c: {id: 1,name: 1} }; // 自定義排序規則&#xff0c;按對象的id排序 var sortedObjKeys Object.keys(objs).sort(function(a, b) {return objs[b].id - objs[a].id; });…

吳恩達機器學習筆記 —— 9 神經網絡學習

本章講述了神經網絡的起源與神經元模型&#xff0c;并且描述了前饋型神經網絡的構造。 更多內容參考 機器學習&深度學習 在傳統的線性回歸或者邏輯回歸中&#xff0c;如果特征很多&#xff0c;想要手動組合很多有效的特征是不現實的&#xff1b;而且處理這么大的特征數據量…

js中字符串編碼函數escape()、encodeURI()、encodeURIComponent()區別詳解

1 escape()函數 定義和用法escape() 函數可對字符串進行編碼&#xff0c;這樣就可以在所有的計算機上讀取該字符串。 語法escape(string) 參數 描述string 必需。要被轉義或編碼的字符串。 返回值已編碼的 string 的副本。其中某些字符被替換成了十六進制的轉義序列。 說明該方…

【SRH】------node遵循的規范,模塊劃分

1.node遵循的是COMMONJS規范&#xff08;規范即規定如何導入導出&#xff09;1、導入&#xff1a;require 2、導出&#xff1a;module.exports2.模塊分類&#xff1a;1、核心模塊nodejs下載安裝完成后會自帶一些模塊&#xff0c;這些模塊不需要下載&#xff0c;可以直接通過r…

vue.js開發環境搭建

環境準備 Node.js Javascript的運行時環境npm Node.js下的包管理工具webpack 前端資源模塊化管理和打包工具vue-cli 腳手架構建工具cnpm npm的淘寶鏡像 Vue.js安裝 Node.js的安裝非常容易&#xff0c;首先從官網下載你所需操作系統的版本&#xff0c;然后一直下一步就ok&…

mysql數據庫刪除一條數據后還想讓新增數據從空缺id處開始

方法1&#xff1a; truncate table 你的表名 //這樣不但將數據全部刪除&#xff0c;而且重新定位自增的字段 方法2&#xff1a; delete from 你的表名 dbcc checkident(你的表名,reseed,0) //重新定位自增的字段&#xff0c;讓它從1開始 方法3&#xff1a; 如果你要保存你的數…

Object相關方法

const object1 {a: somestring,b: 42,c: false };console.log(Object.values(object1)); // expected output: Array ["somestring", 42, false]該Object.values()方法返回給定對象自己的可枚舉屬性值的數組&#xff0c;其順序與for...in循環提供的順序相同&#xf…

用Itextsharp 組件導出PDF 的文檔的方法

Itextsharp 是一個很強大&#xff0c;開源的&#xff0c;輕量級的 PDF 生成組件&#xff0c;官方網上好像沒有相應的API 說明文檔&#xff0c;以下是在工作中使用的心得與體會&#xff0c;并附上源碼&#xff0c;功能包含了pdf 的創建&#xff0c;table 的創建&#xff0c; 圖片…

正則基礎知識

創建正則表達式 1.使用new來創建 var exp new RegExp(box , gi );g 全局匹配 i 忽略大小寫 m 多行匹配2.使用字面量 var exp /box/gi; 直接用2個 / ; 在倆個斜杠后加上模式修飾符&#xff1b; 倆種創建方式比較: 1.使用字面量方式創建用的更加廣泛; 2.當要匹配的內容是變量時,…

詳解 vue-cli 的打包配置文件代碼

一、前言 對于webpack基礎不好&#xff0c;node指令不通的童鞋。估計對自己搭建Vue、react腳手架是相當頭疼的&#xff0c;有種無從下手的感覺。然而&#xff0c;從頭看這2塊&#xff0c;耗時太長&#xff0c;而且說實話得練才行&#xff0c;不練練手看不明白。那大多數人就采…

室內定位(一)

轉自&#xff1a;http://www.cnblogs.com/rubbninja/ 各種室內定位方法 具體的室內無線定位技術可以這樣來分類&#xff1a; 無線設備&#xff1a;WIFI、藍牙、ZigBee、RFID、UWB、LED、紅外線、超聲波、麥克風等定位信息&#xff1a;主要是RSS&#xff08;接收信號強度&#x…

不同瀏覽器css引入外部字體的方式

/*** 字體后綴和瀏覽器有關&#xff0c;如下所示* .TTF或.OTF&#xff0c;適用于Firefox 3.5、Safari、Opera * .EOT&#xff0c;適用于Internet Explorer 4.0 * .SVG&#xff0c;適用于Chrome、IPhone * 比如:*/ font-face {font-family: MyFont;/*定義字體名稱*/src: url(fon…

Promise實踐

var doSomething function() { return new Promise((resolve, reject) > { resolve(返回值); }); };let doSomethingElse function() { return 新的值; }doSomething().then(function () { return doSomethingElse(); }).then(resp > { console.warn(resp); console.wa…

JsonBuilder初出茅廬

互聯網這股東風不久前刮到了甘涼國&#xff0c;國王老甘獨具慧眼&#xff0c;想趕緊趁著東風未停大力發展移動互聯網&#xff0c;因為他篤信布斯雷的理論&#xff1a;“站在風口上&#xff0c;豬都能飛起來”。無奈地方偏僻落后&#xff0c;國內無可用之才啊。老甘一籌莫展的低…

vue-cli 打包部署

1、一般打包 &#xff1a;直接 npm run build。&#xff08;webpack的文件&#xff0c;根據不同的命令&#xff0c;執行不同的代碼的&#xff09; 注&#xff1a;這種打包的靜態文件&#xff0c;只能放在web服務器中的根目錄下才能運行。 2、在服務器中 非根目錄下 運行的 打包…

EXCEL怎么打20位以上的數字?

EXCEL怎么打20位以上的數字&#xff1f; 轉載于:https://www.cnblogs.com/macT/p/10208794.html

vue render函數

Vue中的Render渲染函數 VUE一般使用template來創建HTML&#xff0c;然后在有的時候&#xff0c;我們需要使用javascript來創建html&#xff0c;這時候我們需要使用render函數。比如如下我想要實現如下html&#xff1a; <div id"container"><h1><a hre…

Nexus介紹

轉自&#xff1a;https://www.cnblogs.com/wincai/p/5599282.html 開始在使用Maven時&#xff0c;總是會聽到nexus這個詞&#xff0c;一會兒maven&#xff0c;一會兒nexus&#xff0c;當時很是困惑&#xff0c;nexus是什么呢&#xff0c;為什么它總是和maven一起被提到呢&#…

vue-cli 打包

一項目打包 1 打包的配置在 build/webpack.base.conf.js文件下 常量config在vue/config/index.js 文件下配置&#xff0c;__dirname是定義在項目的全局變量&#xff0c;是當前文件所在項目的文件夾的絕對路徑。 2 需要修改vue/config/index.js 文件下的將build對象下的assets…

乘風破浪:LeetCode真題_010_Regular Expression Matching

乘風破浪&#xff1a;LeetCode真題_010_Regular Expression Matching 一、前言 關于正則表達式我們使用得非常多&#xff0c;但是如果讓我們自己寫一個&#xff0c;卻是有非常大的困難的&#xff0c;我們可能想到狀態機&#xff0c;確定&#xff0c;非確定狀態機確實是一種解決…