
笔试
legend_hua
这个作者很懒,什么都没留下…
展开
-
给定逆序数列,求原始数列的排列
试确定 的排列,使其逆序数列为 。首先逆序列代表该位置索引所代表的数字的逆序数。从后面开始推导,上述逆序数列最后一位,索引为8,代表8的逆序数为0,所以8:87:8 76:8 6 75:8 6 5 74:4 8 6 5 73:4 8 6 5 3 72:4 8 6 2 5 3 71:4 8 6 2 5 1 3 7所以原始排列为:4 8 6 2 5 1 3 7...原创 2018-09-03 21:39:07 · 1592 阅读 · 0 评论 -
leetcode32. Longest Valid Parentheses
求有效匹配最长括号,题目要求可以看leetcode32。采用栈的方式求解,思路如下:1、首先定义一个空栈,将-1置为第一个元素;2、从给定的字符串的第一位开始匹配: 2.1、如果当前位为 '(':将当前位置索引压栈; 2.2、如果当前位为 ‘)’:将栈顶元素出栈,如果此时空栈,则将当前位置索引压栈;接下来将当前索引和栈顶元素做差,取当前差值和历史的最大差值作比较,取...原创 2018-08-24 22:03:10 · 213 阅读 · 0 评论 -
正整数的质因子
题目:功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )#include<iostream>using namespace std;void prime_factor(){ long lInput; cin >> lInput; while (lInput != 1) { for (int i...原创 2018-08-21 21:36:14 · 1661 阅读 · 0 评论 -
动态规划系列(6)——LCS(最长公共子序列问题)
公共子序列的解释,其他博客已经解释的很清楚了,求两个字符串的最长相同的字符组成形式,并且允许不连续,但是每个字符的顺序必须相同。比如 “我们爱吃苹果”和“我爱苹果”的最长子序列就是“我爱苹果”,可以看出结果顺序一致,且两个字符串中都存在这些字符。一、动态规划的解决思路假设两个字符串分别为str1、str2,从最后一位开始判断:1、如果str1和str2的最后一位相等,则我们可以断定,公...原创 2018-08-07 19:19:09 · 381 阅读 · 0 评论 -
动态规划系列(5)——连续子数组的最大和
题目:输入一个整型数组,数组中有整数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。解析:令f(i)代表以第i个数字结尾的子数组的最大和,那么我们可以求出所有的最大和,然后求max(f[i])。如果上一个数之前的子数组和小于0,则到当前的数的子数组的和为当前数的大小;如果上一个数之前的子数组和大于0,则到当前的数的子数组的和为当前数的大小...原创 2018-08-02 17:39:34 · 1962 阅读 · 0 评论 -
动态规划系列(4)——子列表的和是否等于某一个数
油管上讲的最清晰的这个问题是比较复杂的问题,假设存在一个列表,并给定一个数S,判断该列表中是否存在数的和为数S。和之前的动态规划类似,我们先从最后一位往前算,还是选择和不选择的问题。考虑方程,如果选择最后一位,则看前一位的状态是否可以求出和为(S-最后一位数);如果不选择最后一位,则看前一位的状态是否可以求出和为S,最后只要选择和不选择的情况下只要一个True即可。即下面的公式考虑...原创 2018-07-27 23:04:46 · 1105 阅读 · 0 评论 -
动态规划系列(3)——子列表和最大
字列表和最大问题是动态规划比较容易做的一个问题。题目含义是存在一个若干长的数组,然后求出数组中不相邻的数的最大和。以下面数组为例 [1,3,5,2,5,8],和前面的两节的思路类似,我们从最后一个数开始考虑,如果选择8,则当前和为8+OPT(3),OPT代表最佳方案,和最后一位不相邻的第3位置的最佳方案;如果不选择8,则考虑上一位置处的最佳方案。我们可以写出动态方程我们可以按照递归的思...原创 2018-07-27 20:59:34 · 1212 阅读 · 0 评论 -
动态规划系列(2)——收益最大问题
考虑一个问题,如果有多个任务,每个任务有自己存在时间段(任务之间的时间段可能有重复),求如果选择任务可以使收益最大化,计算收益时,每个任务段之间不能有重合。我们举个实际的例子,存在8个任务,如下图所示,图中标明了每个任务的时间段和收益。这个问题我们这样考虑,从头到尾,当看到一个任务时,此时不考虑排在后面的任务,考虑在选择和不选择这个任务时各自的收益,然后选其中的最大值。第1个任务:选择...原创 2018-07-27 18:26:28 · 7199 阅读 · 0 评论 -
动态规划系列(1)——斐波拉切数列
说起斐波拉切数列,大家肯定知道下面的递归公式,而且可能书本上递归程序部分也举了这个例子。如果要计算斐波拉切数列中第n个数是什么,我们可能有下面的思考过程,f(n) = f(n-1) + f(n-2),通过第n个数的前两项来计算,但是前两项有可能也是未知的,因为继续计算前两项的值,这种思路是按照上面的公式比较正常的,即有下面的树结构的计算过程(假设我们计算第7个数)。现在从第7个数往前算的时...原创 2018-07-27 17:41:19 · 1424 阅读 · 0 评论 -
leetcode:Longest Mountain in Array
Let's call any (contiguous) subarray B (of A) a mountain if the following properties hold:B.length >= 3 There exists some 0 < i < B.length - 1 such that B[0] < B[1] < ... B[i-1] <...原创 2018-07-27 10:57:13 · 311 阅读 · 0 评论 -
爬山问题(百度笔试2018)
问题描述冬木市西边的园藏山是著名的旅游圣地。从空中俯瞰,园藏山可以看成一个 n * m 的矩阵,我们把行从上往下按 1 到 n 编号,把列从左往右按 1 到 m 编号,那么(i, j)就表示矩阵第 i 行第 j 列的位置。我们用ℎi,j , 表示位置(i, j)的海拔高度。初始时,Saber 在(sx, sy)这个位置,她想前往更高的地方。每一次她可以选择向上、下、左、右其中一个方向走,但不能走出...原创 2018-04-18 21:39:47 · 1236 阅读 · 0 评论