2015百度校招之動態規劃(兼職問題)
晚上做完百度校招筆試題,真心覺得不再愛了,第一題圖片沒刷出來,第二題一看就有思路,結果花了20多分鐘寫程式碼,可竟然半個多小時除錯,還做錯了,第三題也是很簡單。因為前面的網站高併發導致的各種刷不出圖問題,很是影響手感。不吐槽了,動態規劃問題,只是這裡比普通的動態規劃多了層包裝。第二題截圖如下:
交完卷很不爽,明明可以輕鬆搞定的題,結果還耽誤了另外兩道題的答題時間,唉,都怪自己太倔。好吧,不吐槽了,下面貼出交卷後完善的程式碼:
import java.util.Scanner; public class Main1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); String[] num = scan.nextLine().split("\\s");///n,m,K int n = Integer.valueOf(num[0]); int m = Integer.valueOf(num[1]); int k = Integer.valueOf(num[2]); int[] c = new int[n]; int[] v = new int[n]; int[] p = new int[n]; String [] pdata = scan.nextLine().split("\\s"); int temp = n; while(temp>0){ p[temp-1] = Integer.valueOf(pdata[temp-1]); temp--; } ////根據m個時間段重新構造獲取的報酬陣列 for(int i=0;i<n;i++){ int sum = 0; for(int j=0;j<m&&i>=j;j++){///將i前m個報酬相加 sum+=p[i-j]; } v[i] = sum; c[i] = 1;//消耗體力 } System.out.println(dp(k, m, c, v)); } /** * 動態規劃獲取單組資料的最大價值 * @param k 體力 * @param m 連續工作間隔 * @param c 工作時間段 * @param v 獲得的報酬 * @return */ public static int dp(int k, int m,int[] c, int[] v){ int[][] dp = new int[c.length][k+1];/////dp[i][j]表示在在體力為j時,選擇前面i個所得最大報酬 for(int i=0;i<c.length;i++) { dp[i][0] = 0; } for(int j=0;j<k;j++){ dp[0][j] = 0; } for(int i=0;i<c.length;i++){ for(int j=0;j<=k;j++){ if(c[i]>j){///不工作 dp[i][j] = i==0? 0 : dp[i-1][j]; }else{///工作 if(i<m){///前m個時間段 // for(int x=0;x<i+1;x++) dp[i][j] =v[i]; }else{ dp[i][j] = Math.max(dp[i-1][j], dp[i-m][j-1]+v[i]); } } } } if(k<1||c.length<1) return 0; return dp[c.length-1][k]; } }
測試:
其實,你說難嗎?真不難! 第一次搞動態規劃,主要還是自己能畫圖一步步推導(http://blog.csdn.net/dapengbusi/article/details/7463968關聯文章中的那個圖,會畫了就okay了!),掌握了,這方法還是很強大的!好吧,筆試又掛了 0.0
相關推薦
2015百度校招之動態規劃(兼職問題)
晚上做完百度校招筆試題,真心覺得不再愛了,第一題圖片沒刷出來,第二題一看就有思路,結果花了20多分鐘寫程式碼,可竟然半個多小時除錯,還做錯了,第三題也是很簡單。因為前面的網站高併發導致的各種刷不出圖問題,很是影響手感。不吐槽了,動態規劃問題,只是這裡比普通的動態規劃多了層包
2015百度校招筆試杭州站
1:請描述資料結構中棧和佇列的區別。並說出3個操作。 答:棧先進後出。佇列先進先出。例如(pop() push() empty() back() front()); 2:請描述一下C++中多型。舉個例子: 我學java的。但我記得多型應該是過載和重寫。 過載 Class
Leetcode題解之動態規劃(4)最大子序和打家劫舍
題目:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/23/dynamic-programming/57/ 題目描述: 打家劫舍 你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有
Leetcode題解之動態規劃(3)最大子序和
題目:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/23/dynamic-programming/56/ 題目描述: 最大子序和 給定一個整數陣列
Leetcode題解之動態規劃(2) 買賣股票的最佳時機
題目:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/23/dynamic-programming/55/ 題目描述: 給定一個數組,它的第 i 個元素是一支給定股票第
Leetcode題解之動態規劃(1)爬樓梯
題目:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/23/dynamic-programming/54/ 題目描述: 假設你正在爬樓梯。需要 n 階你才能到達樓頂。
由Leetcode詳解演算法 之 動態規劃(DP)
因為最近一段時間接觸了一些Leetcode上的題目,發現許多題目的解題思路相似,從中其實可以瞭解某類演算法的一些應用場景。 這個隨筆系列就是我嘗試的分析總結,希望也能給大家一些啟發。 動態規劃的基本概念 一言以蔽之,動態規劃就是將大問題分成小問題,以迭代的方式求解。 可以使用動態規劃求解的問題
演算法總結之動態規劃(DP)
適用動態規劃的特點 所解決的問題是最優化問題。 所解決的問題具有“最優子結構”。可以建立一個遞推關係,使得n階段的問題,可以通過幾個k<n階段的低階子問題的最優解來求解。 具有“重疊子結構”的特點。即,求解低階子問題時存在重複計算。 詞典法 大家都知道,遞迴演算法一般都存在大量的重複計算,這會造成不
演算法之動態規劃(DP)
前言 前言_ 我們遇到的問題中,有很大一部分可以用動態規劃(簡稱DP)來解。 解決這類問題可以很大地提升你的能力與技巧,我會試著幫助你理解如何使用DP來解題。 這篇文章是基於例項展開來講的,因為乾巴巴的理論實在不好理解。 注意:如果你對於其中某一節已經瞭解並且不
【演算法之動態規劃(一)】動態規劃(DP)詳解
一、基本概念 動態規劃(dynamic programming)是運籌學的一個分支,是求解決策過程(decision process)最優化的數學方法。20世紀50年代初美國數學家R.E.Bellman等人在研究多階段決策過程(multistep d
LeetCode :騰訊秋招之動態規劃
https://leetcode-cn.com/explore/interview/card/tencent/226/dynamic-programming/ 爬樓梯 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個臺階。你有多少種不
2018-10-13 百度校招測試面試
一面: 1、自我介紹: 2、專案: Token的實現方式:通過什麼來做唯一標識生成Token的? 答:裝置的硬體型號; 問:如果別人正好偽造了該硬體型號,進行獲取Token,你是怎麼解決的? 答:沒有解決方案; 3、sizeof(型別是指標)和sizeof(型別
2018百度校招、騰訊校招 面試經驗
百度校招面試經驗 一到九月份,就開始了各種筆試。每天晚上七點到九點,大家都可以在機房看到我一個人在那裡自言自語。2018年09月16號晚上,我和我女朋友筆試完在外面吃東西時接到百度的面試通知。接
難忘的面試周——百度校招面經
如果說準備招聘的複習過程如同準備考研一樣單調而緊張,那筆試之後的面試過程就如沒考上尋求調劑一般煎熬而痛苦。也許很多朋友沒有體會過以上過程,還不能理解如何緊張如何煎熬。那麼下面我把我一個月的緊張和一週的煎熬分享給大家,文章末尾會有一片android面試大全,這些只
面試總結——百度校招二面跪了
開篇:無論有多少磕磕絆絆,無論每一次摔得有多痛,請給自己留下記憶! 北漂近半年,由於個人原因錯過很多校招,百度是第一家通知我面試的,心中難免欣喜萬分,畢竟自己的運氣還不差。 面試時間:2017年10月14日上午10:00 面試地點:百度大廈C座(上地十街1
2017年 百度校招《資料探勘工程師》筆試題---程式題
一,程式題 1,餐廳裡有一張圓形的桌子,桌子上有n個座位,座位按照順序從1到n編號,而且n號座位和1號座位相鄰,每個座位都不一樣。m個人一起去這家餐廳吃飯,為了更好地就餐,他們不想坐得太過擁擠,因此,不允許有任意兩個相鄰。 您知道一共有多少種不同的就坐方法嗎
2017百度校招筆試第一題
題意: 大概是一個小朋友去遊樂園,遊樂園一個有n個專案,第i專案需要花費a[i]時間去玩,小朋友的門票一共可以在遊樂園裡面待t時間,只要在這個時間內開始一個專案,那麼他可以等到專案結束後才離開遊樂園。
百度校招-等待百度的那些日子裡
百度一面2013年10月11日下午5:00 天津晉濱國際大酒店 有幸通過了對我來說很有挑戰性的百度筆試,迎接來了度孃的一面,約的下午5:00,4:50我來到了一面面試官所在房間的門口(1220),門大開著,裡面有個哥們正在面試,就沒打擾,在門口老實等著,等到5:30他們才結
160922-0924百度校招測試開發面試記錄
160922 0924 0926百度校招測試開發面試記錄 首先我要吐槽一下面試時間,一面面了一個小時,二面面了70+分鐘。。 總的看來,面試演算法問的不難,但是很注重考查基礎,必問專案經歷,並會發散性的考查你的能力,同時一定會考查對你投遞崗位的認識程度。
百度地圖和openlayers融合封裝(四)之demo展示
2018.5.28 --11:31 wmap的目的是減少地圖開發的成本和時間。 如果你需要進行地圖開發,覺的百度地圖和openlayers的api文件晦澀難懂(主要是openlayers的api很難懂,百度api入門很簡單),可以使用wmap。你不需要去學習百度地圖api