数据结构与算法
文章平均质量分 95
杰瑞大杰瑞
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Longest Substring Without Repeating Characters
贪心法、移动窗口得到局部解、set容器原创 2017-06-14 16:47:15 · 258 阅读 · 0 评论 -
Reverse Linked List II
需要虚拟个头结点dummy,整个链表分为三个部分,如下图步骤所示: class Solution { public: ListNode* reverseList(ListNode* head, int SubLength,ListNode*& pThirdHead) { ListNode* pre = NULL; ListNode* cur = head;原创 2017-08-25 01:26:20 · 190 阅读 · 0 评论 -
Min Stack 最小栈
看到这个最小堆的解题思路,这里自己练习着实现下细节。 class MinStack { public: /** initialize your data structure here. */ MinStack() { curIdx = -1;//初始化arr栈顶索引 curMin = -1;//初始aux栈顶索引 maxCap = 10; arr = new int[原创 2017-09-17 17:12:50 · 264 阅读 · 0 评论 -
43.Multiply Strings 大数相乘
如果这道题不给接口参数,思考应该会更加困难,从应试的角度,我们看到string multiply(string num1, string num2)这样的参数,就知道了肯定是需要用字符串输出来代表输出的大数了。 string multiply(string num1, string num2) { string rnum1 = num1; string rnum2 = num2; vect原创 2017-10-18 22:24:05 · 182 阅读 · 0 评论 -
栈、队列、优先队列 - 归档
栈、队列、优先队列 概述 名词 性质 20. Valid Parentheses* 20. Valid Parentheses 栈的初级使用 hash表用作括号对的匹配 class Solution { public: bool isValid(string s) { if(s.empty()) return true; map<char,char> cMap{{')', '('}, { ']', '['}, {原创 2021-08-23 23:09:48 · 213 阅读 · 0 评论 -
32. Longest Valid Parentheses
解题思路 暴力枚举 代码 class Solution { public: int longestValidParentheses(string s) { int maxlength = 0; for(int i = 0; i < s.size(); i++){ for(int j = i + 1; j < s.size(...原创 2020-04-16 16:35:07 · 140 阅读 · 0 评论 -
二叉树 - 归档
LeetCode - 二叉树和递归 概述 名词 性质 111. Minimum Depth of Binary Tree* 226. Invert Binary Tree** 100. Same Tree 101. Symmetric Tree 222. Count Complete Tree Nodes 110. Invert Binary Tree 111. Minimum Depth of Binary Tree 递归解法 class Solution { public:原创 2020-06-15 21:28:31 · 128 阅读 · 0 评论 -
回溯和递归 - 归档
LeetCode - 回溯和递归 概述 方式 性质 递归 自顶向下,对于有重叠子问题的递归,可以使用记忆化搜索。 回溯 递归返回上一层的过程,暴力解法的主要实现手段。与之对应的是多重循环(每层遍历数量固定的话)。另外回溯可以通过剪枝来优化,不用到达所有的叶子节点。 树形递归 17. Letter Combinations of a Phone Number 93. Rest...原创 2020-06-02 21:46:53 · 426 阅读 · 0 评论 -
动态规划 - 归档
换钱的最少货币数(完全背包) 动态规划: #include<iostream> #include<string> #include<vector> #include<algorithm> #define MAXVALUE 0x7fffffff using namespace std; int main() { int n; int aim; ...原创 2020-06-30 21:00:14 · 387 阅读 · 0 评论 -
优先队列与堆排序
概述 我所知道的,广义的队列有三种:stack栈是一种,queue队列是一种,还有一种比较特殊,priorityqueue优先队列 为什么特殊,因为前面两种队列,往队列push元素的时候,push过程就是很简单的把元素放在头部或者尾部就行了,pop的时候也是简单的取出头尾数据。而优先队列更加“智能化”,你把数据push进队尾的时候,push过程要在内部把数据进行整理,使队首元素总保持原创 2017-12-02 14:06:06 · 172 阅读 · 0 评论 -
归并排序.
接下来是归并排序。原创 2017-12-10 10:15:08 · 153 阅读 · 0 评论 -
32. Longest Valid Parentheses
###解题思路 暴力枚举 ###代码 ```cpp classSolution{ public: intlongestValidParentheses(strings){ intmaxlength=0; for(inti=0;i<s.size();i++){ for...原创 2021-08-23 23:11:06 · 162 阅读 · 0 评论 -
从快速排序开始
打算重新学习下算法,顺便把相关的东西整理到自己博客上,博客一搜重复的内容一大片,不论是正确还是错误的都带着很多主观看法,所以写这个不是为了成为参考资料,只为整理下自己的思路、备忘,如果被网路上的同学们检索到,希望大家能够自己甄别其中好坏,有问题的地方,也希望能够提出来大家共同学习。 这里从快速排序和归并排序开始,因为对于新入行的同学来讲,这两个排序是理解递归的一个很好的切入点。 直接进原创 2017-11-13 22:11:15 · 204 阅读 · 0 评论
分享