微软2016校园招聘4月在线笔试(第3题) 分析: 题目利用DP思想,dp[i][j][k]表示robot跑到i行j列目前移动方向为k时,所需要的最小的flip。其中0 <= i <= N,0 <= j…
标签:算法
排队
篮球队员身高问题 n个篮球队员,平均身高2000mm,身高范围1950~2050mm。求一个排列,使得对于任意一个给定的k,任意k个连续队员的身高之和与k*2000之差的绝对值小于100 方法:首先,预处理…
【二叉树遍历算法】——广/深度优先搜索的实现
广度和深度优先搜索一般都是用于图的遍历,树也有,这里实现的是二叉树的广度和深度优先搜索。主要使用伪代码的方式实现,掌握基本的思想和过程即可,对应具体的编程语言实现起来也就大同小异了。 深度优先搜索 void depthS…
【百度面試題】循環有序數組的查找問題
問題: 有一個循環有序數組A,如{7,8,9,0,1,2,3,4,5,6},不知道其最小值的位置。 那麼如何從這樣的數組中尋找一個特定的元素呢? 解決: 當然,遍歷總是一個辦法。當然面試的時候回答遍歷估計就…
公交車載人最大值問題
問題描述 規定公交車的出發點和終點,要求途徑站點,載人數最多,對於公交車的載人數不限。 算法分析 若M[i][j]記錄載人數,在公交車行駛過程中,同步更新標記矩陣,得到出站人數最多。 對於初矩陣在站點座標記錄等車的人數,…
優先隊列與堆排序(一)
優先隊列: 優先隊列時一種數據結構,其數據項中帶有關鍵字,支持兩種基本操作: 向優先隊列中插入一個新的數據項; 刪除優先隊列中的關鍵字最大的數據項; 優先隊列數組實現: 將記錄存儲在一個無序數組中,從數組的末尾插入和刪除…
算法複習(一)——最小生成樹
求最小生成樹可以使用Prim或Kruskal算法 Kruskal比較直觀,因爲邊是按全局從小到大依次考慮的,所以能保證全局最優解。若不構成環,則加入這條邊;否則,丟棄這條邊。因爲出現環,說明當前已經有邊將該點加入生成樹,…
LeetCode Triangle 120 DP問題
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on …
找到最大的三個數最少調用幾次函數
題目:有一個小白程序員,寫了一個只能對5個數字進行排序的函數,現在有25個不重複的數字,請問小白同學最少調用幾次該函數,可以找出其中最大的三個數? A.5 B.6 C.7 D.8 答案:C 解析:第一步:25人分爲5組調…
關於指數循環節的證明
關於指數循環節某位大神給了一種簡單的證明。 不過前提是知道歐拉定理: aφ(p)≡1(modp) 就有循環節出現了: aφ(p) !!! 就有 A^x = A^(x % Phi(C) + Phi(C)) (mod C)。
最大連續子數組和
輸入一個整形數組,數組裏有正數也有負數。數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。 求所有子數組的和的最大值,要求時間複雜度爲O(n)。 例如數組是{ 1, -2, 3, 10, -4, 7, 2,…
写循环体的技巧-----循环不变式(loop invariant)
循环不变式是一种条件式(必须满足的条件,对循环而言是保持不变的,无论循环执行了多少次),循环语句没执行一次,就要求中间的结果必须符合不变式的要求。 (1)进入循环语句时,不变式必须成立; (2)循环语句的循环体不能破坏不…