算法
从程序猿到程序员
努力吧骚年
展开
-
LeetCode题解——862.Shortest Subarray with Sum at Least K
中文题目 官方答案,时间复杂度O(n)自己的思路: (1)暴力,超时了。 (2)opt(i,k):长度为i的数组,找和至少为k的连读子数组的长度。opt(i,k)=min{1+opt(i-1,k-A[i]), opt(i-1,K)},结果是失败的,要连续;故写成两种递归,若选了该值,后面都要选,不然不连续;修改后,还是超时,这是自上而下,且没用辅助数组存储结果,但是想想好像没法存,是...原创 2019-03-26 22:55:44 · 1710 阅读 · 0 评论 -
VIVO笔试题——背包问题
背景:VIVO提前批笔试题遇到了01背包,就记得动态规划动态规划,记得表格法,突然失忆怎么写。来自背包九讲01背包有 N 件物品和一个容量为 V 的背包。放入第 i 件物品耗费的容量是 Ci,得到的价值是 Wi。求解将哪些物品装入背包(每个物品只可放一件物品)可使价值总和最大(最优化问题)?思路自顶而下的方式去思考问题,设f(i,v)为选取前 i 件物品装入容量为 v 的背包中的物...原创 2019-06-08 16:13:04 · 617 阅读 · 0 评论 -
字节跳动笔试1——马里奥弹跳板游戏(BFS)
题目一个数组代表跳板,数字代表向前或向后可以跳的最大距离(比如3,那么跳1,、2、3都行),0代表悬崖(跳上去摔死)。指定一个出生点P,求到终点需要跳的最小次数(终点是最后一个元素后面),无法到达输出-1。输入:第一行:数组长度N,出生点P第二行:N个数字输出:最小次数示例:输入:7 410 0 2 1 1 0 1输出:31<= N <= 10000...原创 2019-07-01 23:03:34 · 1602 阅读 · 2 评论 -
算法之单调栈与单调队列
单调队列单调队列顾名思义就是具有单一单调性的队列。例题给定一个数列,从左至右输出每个长度为m的数列段内的最小数和最大数。数列长度:N<=106,m<=N数列为:6 4 10 10 8 6 4 2 12 14,求长度为3的数列段内的最大数,使用单调递减栈。(1)(6,0)入队,此时队列为(6,0)(2)(4,1)入队,此时队列为(6,0) (4,1)(3)(10,2)入队...原创 2019-08-19 20:38:28 · 450 阅读 · 0 评论