![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
hhl35
肚子好饿,早知道多刷点leetcode了
展开
-
LeetCode刷题 _第22题(Generate Parentheses)_感想
题目描述 菜鸡解法(暴力递归) 看到题目第一眼,感觉和第20题有效的括号很相似,苦思冥想了10分钟没有任何思路(除了暴力递归),试想一下笔试时也没这么多时间考虑,于是想着不管复杂度多少,先AC一下!就这样还磕磕绊绊了半小时,于是诞生了如下垃圾代码 对,你没有看错,120ms,一是想着能不能给递归剪下枝,于是用了两个变量记录当前已存在的左括号数量和右括号数量,当左括号大于一半时返回,不然像((...原创 2019-07-29 18:04:57 · 175 阅读 · 0 评论 -
LeetCode刷题 _23题(Merge k Sorted Lists)_感想
题目描述 菜鸡解法 之前做过合并排序的两个链表,这道题从两个变成K个,于是想着先合并两个,再用合并过的和下一个合并,其实还没写就知道复杂度太高,但还是硬着头皮写了下来,运行,果然,击败百分之二十,菜 ListNode* mergeKLists(vector<ListNode*>& lists) { int k = lists.size(); ...原创 2019-07-30 15:05:27 · 130 阅读 · 0 评论 -
LeetCode刷题 _第21题( Merge Two Sorted Lists)_感想
题目描述 菜鸡解法 mergeTwoList(ListNode *l1,ListNode *l2) { ListNode *head = new ListNode(1); ListNode *cur = head; while(l1 && l2){ if(l1->val <= l2->val){ cur->next = l1; l1 ...原创 2019-07-30 15:35:01 · 197 阅读 · 0 评论 -
LeetCode第32题( Longest Valid Parentheses)
题目 Given a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring. Example 1: Input: “(()” Output: 2 Explanation: The longest valid...原创 2019-08-08 11:46:56 · 85 阅读 · 0 评论 -
leetcode第53题(具有最大和的子数组)
给定整数数组号,找到具有最大和的相邻子数组(至少包含一个数字)并返回其和 class Solution { public: int maxSubArray(vector<int>& nums) { //动态规划 //原问题分解成i个子问题,每个子问题表示为以i结尾的最大子数组和,原问题的最优解即是求i个...原创 2019-08-09 11:54:32 · 124 阅读 · 0 评论 -
动态规划开篇
什么是动态规划? 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。 动态规划程序设计是对解最优化问题的一种途径、一种方...原创 2019-08-15 16:48:04 · 514 阅读 · 0 评论 -
背包问题之(01背包)(完全背包)
01背包 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 常规解法 背包问题属实动态规划的一类,因此可以用动态规划解决 状态表示F[i][j] 表示当体积为j时前i件物品可以装的最大价值 考虑到开始选第i件物品时,状态转移分为两种 1.背包里不装第...原创 2019-09-24 18:44:16 · 145 阅读 · 0 评论 -
双指针,滑动窗口,单调队列/栈
双指针 解决问题 降维,优化时间复杂度 一般思路 暴力解法–>寻找性质(单调性)–>双指针 牛刀小试 给定排序的数组和一个target,寻找数组里两数之和为target的两个数的索引下标,若不存在返回{-1,-1}。 1.暴力解法: vector<int> twosum(vector<int> nums,int target) for(int i = 0;i&l...原创 2019-10-07 11:25:22 · 221 阅读 · 0 评论