- 博客(9)
- 收藏
- 关注
原创 LeetCode - 最长有效括号
题目描述 给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。 示例 示例 1: 输入: “(()” 输出: 2 解释: 最长有效括号子串为 “()” 示例 2: 输入: “)()())” 输出: 4 解释: 最长有效括号子串为 “()()” 方法一:栈 思路 1、栈用来保存读取到的括号的下标,而不是括号字符。初始时为了统一现在栈底将-1入栈,以便第一个遇到右括号与之后遇到的情况保持统一的处理 2、保持栈底元素为最后一个没有被匹配的右括号下标(初始是-1,一但-1出栈,之后栈底
2020-09-20 16:02:38
1157
原创 牛客(美团)- 股票交易日(……)
题目描述 在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行)。给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益。请采用实践复杂度低的方法实现。 给定价格序列prices及它的长度n,请返回最大收益。保证长度小于等于500。 测试样例: [10, 22, 5, 75, 65, 80], 6 返回:87 思路 二分解法 1、计算所有位置的划分后的结果,比较得出最大。 2、用二分法做,先把数组从中间分开,然后在两部分
2020-09-11 23:43:57
331
原创 牛客(美团)- 字符串计数(动态规划)
题目描述 求字典序在s1和s2之间的,长度在len1到len2的字符串的个数,结果mod 1000007。 输入描述: 每组数据包涵s1(长度小于100),s2(长度小于100),len1(小于100000),len2(大于len1,小于100000) 输出描述: 输出答案。 示例1 输入 ab ce 1 2 输出 56 解释 字典序:从两个字符串的下标为0开始进行对比,字典序是从左往右进行对比的 例如ab,abc这样两者之间的字符串有aba、abb,而ab、bb两者之间的字符串有ac、ad、ae……az、
2020-09-10 16:57:41
565
原创 牛客(美团)- 直方图内最大矩形(分治思想)
题目描述 有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。 给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。 测试样例: [2,7,9,4,1],5 返回:14 思路 1、首先确定范围,在特定范围中,这个区域的面积为:长度 x 所有列中高度最低那一列的高度 2、一开始的范围是所有列计算面积,然后找出最低的列,以此
2020-09-09 11:41:38
381
原创 牛客(美团)- 拜访(动态规划)
题目描述 现在有一个城市销售经理,需要从公司出发,去拜访市内的商家,已知他的位置以及商家的位置,但是由于城市道路交通的原因,他只能在左右中选择一个方向,在上下中选择一个方向,现在问他有多少种方案到达商家地址。 给定一个地图map及它的长宽n和m,其中1代表经理位置,2代表商家位置,-1代表不能经过的地区,0代表可以经过的地区,请返回方案数,保证一定存在合法路径。保证矩阵的长宽都小于等于10。 测试样例: [[0,1,0],[2,0,0]],2,3 返回:2 注:题目的意思不够清晰,所谓的上中下选一种实际是在
2020-09-08 22:36:29
531
原创 牛客(美团)- 最大差值(贪心算法)
题目描述 有一个长为n的数组A,求满足0≤a≤b<n的A[b]-A[a]的最大值。 给定数组A及它的大小n,请返回最大差值。 测试样例: [10,5],2 返回:0 贪心概念 贪心算法是一种对某些求最优解问题的更简单,更迅速的设计技术。贪心算法的特点是一步一步地进行,常以当前情况为基础根据某个优化测度作最优选择,而不考虑各种可能的整体情况,省去了为找最优解要穷尽所有可能而必须消耗的大量时间。 思路 1、如果只有一个元素,很明显最大差值只可能是自己去减自己,即0 2、大于1时,又因为a<=b,即差
2020-09-08 17:23:25
839
原创 LeetCode - 下一个排列
下一个排列(LeetCode) 题目描述 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 要求 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1 思路 1、设置前后两个指针(java没有指针,可理解为两个下标标志位),一前一后,两层循环 2、前指针从数组的结尾倒数第二个
2020-09-08 11:40:33
138
原创 Linux之压缩命令格式与参数含义
.gz 压缩 命令名称:gzip 命令英文愿意:GUN unzip 命令所在路径:/bin/gzip 压缩语法:gzip [文件名] 解压缩 命令名称:gunzip 命令英文愿意:GUN unzip 命令所在路径:/bin/gunzip 解压缩语法:gunzip [压缩文件名] (或者 gzip -d [压缩文件名]) 注:只能压缩文件,不能压缩目录,也不能保留原文件 .tar(可以打包目录) 命令名称:tar 命令所在路径:/bin/tar 压缩语法:tar 选项[-zcf] [压缩后文件名] [目录或文
2020-08-22 15:33:33
334
原创 牛客(阿里笔试)- 2人乘船渡河(贪心算法)
阿里笔试题(牛课)之乘船(2人)渡河问题 题目:班长带着班级同学出游,途中有一条河,河边有一条船,此船一次只能载两人,船到对岸时间等于两人中体重大的那个人,如果是一个人那就是此人的体重。求最少的时间方案(只需求解出时间即可) 输入格式: 第一行:首先输入t,代表有t组数据 第二行:第一组数据,首先输入人数number 第三行:其次再依次输入每个人的体重weight 第四行:第二组数据的人数 …… 思路 先排序:a1 <= a2 <= a3 ··· <= an 找出最小的三个(排了序就是前
2020-08-22 00:08:51
646
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人