1、一條長l的筆直的街道上有n個路燈,若這條街的起點為0,終點為l,第i個路燈座標為ai,每盞燈可以覆蓋到的最遠距離為d,為了照明需求,所有燈的燈光必須覆蓋整條街,但是為了省電,要是這個d最小,請找到這個最小的d。(網易)
思路:看上去很複雜的題目,其實真的超級簡單。取max。a1為最左邊的燈到起點的距離,l-an為最右邊的燈到終點的距離,t為相鄰兩燈的距離排序後的最大值的一半。稍微思考一下就知道原因了。
2、給定乙個長度為n的陣列,找出乙個最長的單調自增子序列(不一定連續,但是順序不能亂) 。(完美世界)
思路:設乙個輔助陣列用來記錄以對應元素結尾的最大遞增子串行的長度(即lis[i]表示以array[i]結尾的最大遞增子串行長度為lis[i]),從頭到尾掃一遍原陣列,對於每個元素,以其結尾的最大遞增子串行長度要麼為1,要麼為這個元素前面的元素中小於該元素且最大遞增子串行長度最大的那個元素對應的最大遞增子串行長度+1。即if(array[i]>array[j] && lis[j]+1>lis[i])
(這道題還有優化的方案,我只以我的思路來講。。。)
以上~~
兩道面試演算法題
最近面試 兩道演算法題 說難不難 要寫全對也不容易 很慚愧 我沒有一次寫對 第一道 無序int陣列 找到中位數 void swap int a,int b int get kth number vector num,int k,int start,int end 一次劃分結束 index i if ...
兩道貪心演算法題
假設有n項物品,大小分別為s 1 s 2 s i sn 其中s i為滿足1 s i 100的整數。要把這些物品裝入到容量為100的一批箱子 序號1 n 中。裝箱方法是 對每項物品,順序掃瞄箱子,把該物品放入足以能夠容下它的第乙個箱子中。請寫乙個程式模擬這種裝箱過程,並輸出每個物品所在的箱子序號,以及...
兩道String演算法題賞析
今天leecode看到了道初級演算法題。感覺思維很精妙。特此記錄下來以供學習使用 242.有效的字母異位詞 字母異位詞就是兩個字串的字母相同,個數相同,順序可以不管。我的思維就是 使用map統計每乙個字母的個數,然後遍歷兩個map。進行對比。兩個map的巢狀遍歷,時間複雜度o n 空間複雜度是o n...