t50

LeetCode 32,并不Hard的难题,解法超级经典,带你领略动态规划的精彩

点点圈 提交于 2021-01-15 08:01:14
点击 上方蓝字 ,和我一起学技术 。 今天给大家分享的是LeetCode当中的32题,这是一道 Hard 难度的题。 也是一道经典的字符串处理问题,在接下来的文章当中,我们会详细地解读有关它的三个解法。 希望大家不要被题目上的标记吓到,虽然这题标着难度是Hard,但其实 真的不难 。 我自信你们看完文章之后也一定会这么觉得。 题目 Longest Valid Parentheses 难度 Hard 描述 给定一个只包含左右括号的字符串,返回最长能够组成合法括号的长度 Given a string containing just the characters '(' and ')' , find the length of the longest valid (well-formed) parentheses substring. 样例 1: Input: "(()" Output: 2 ## Explanation: The longest valid parentheses substring is "()" 样例 2: Input: ")()())" Output: 4 ## Explanation: The longest valid parentheses substring is "()()" 思考 我们来分析一下题目,这题的题目很容易理解

每日算法系列【LeetCode 153】寻找旋转排序数组中的最小值

无人久伴 提交于 2020-12-18 13:52:58
题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 (例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2])。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 示例1 输入: [3,4,5,1,2] 输出: 1 示例2 输入: [4,5,6,7,0,1,2] 输出: 0 题解 这题如果直接遍历一遍的话,时间复杂度是 ,也能过。但是这题显然想要你更快,也就是用 的时间复杂度来做出来,那我们只能选择用二分法。 因为序列从中间切开来,然后调换过顺序,所以是先上升,再下降一下,然后再上升。并且第二段上升的最大值 是一定小于第一段上升的最小值 的,所以最小值一定是第二段的第一个数。 假设我们二分的时候,左端点 l ,右端点 r ,中间点是 m 。 如果 ,那说明左端点在第一段,右端点在第二段。这时如果 ,那么 m 也在第一段,所以 l 需要右移;否则的话 m 在第二段, r 需要左移。 如果 ,那么两个端点都在第二段,是单调上升的,那最小值一定就是 l 。 代码 c++ class Solution { public : int findMin ( vector < int >& nums) { int l = 0 , r = nums.size() - 1 ; while (l < r) { int m = (l + r) / 2 ;

蔬菜:白菜

此生再无相见时 提交于 2020-04-30 07:12:56
ylbtech-蔬菜:白菜 白菜是我国原产蔬菜,有悠久的栽培历史。据考证,在我国新石器时期的 西安半坡原始村落遗址 发现的白菜籽 距今约有6000年-7000年 。明代李时珍引陆佃《 埤雅 》说:“菘,凌冬晚凋,四时常见,有松之操,故曰菘,今俗谓之白菜。” 白菜19世纪传入日本、欧美各国。如今的白菜种类很多,北方的白菜有 山东胶州大白菜、北京青白、东北大矮白菜、山西阳城的大毛边 等。南方的白菜是由北方引进的,其品种有 乌金白、蚕白菜、鸡冠白、雪里青 等,都是优良品种。 白菜为东北及华北 冬、春季主要蔬菜 。菜叶可供 炒食、生食、盐腌、酱渍 ,外层脱落的菜叶尚可作饲料。 1. 返回顶部 1、 中文学名:白菜 拉丁学名: Brassica pekinensis (Lour.) Rupr. 别 称: 黄芽菜 大白菜 结球白菜 包心白菜 界:植物界 门: 种子植物门 纲: 双子叶植物纲 亚 纲: 原始花被亚纲 目: 白花菜目 亚 目:白花菜亚目 科: 十字花科 族:芸薹族 属: 芸薹属 种:白菜 命名者及年代:(Lour.) Rupr. ,1860 目录 1 形态特征 2 球色 3 产地生境 4 无公害生产技术 ▪ 产地要求 ▪ 栽培技术 ▪ 田间管理 ▪ 病虫害防治 ▪ 收获 5 营养成分 6 主要价值 7 食用注意 8 推荐菜品 9 白菜趣谈 2、 2. 返回顶部 1、 形态特征