数据结构与算法
文章平均质量分 95
杰瑞大杰瑞
这个作者很懒,什么都没留下…
展开
-
Longest Substring Without Repeating Characters
贪心法、移动窗口得到局部解、set容器原创 2017-06-14 16:47:15 · 193 阅读 · 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 · 137 阅读 · 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 · 189 阅读 · 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 · 138 阅读 · 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 · 151 阅读 · 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 · 85 阅读 · 0 评论 -
二叉树 - 归档
LeetCode - 二叉树和递归概述名词性质111. Minimum Depth of Binary Tree*226. Invert Binary Tree**100. Same Tree101. Symmetric Tree222. Count Complete Tree Nodes110. Invert Binary Tree111. Minimum Depth of Binary Tree递归解法class Solution {public:原创 2020-06-15 21:28:31 · 66 阅读 · 0 评论 -
回溯和递归 - 归档
LeetCode - 回溯和递归概述方式性质递归自顶向下,对于有重叠子问题的递归,可以使用记忆化搜索。回溯递归返回上一层的过程,暴力解法的主要实现手段。与之对应的是多重循环(每层遍历数量固定的话)。另外回溯可以通过剪枝来优化,不用到达所有的叶子节点。树形递归17. Letter Combinations of a Phone Number93. Rest...原创 2020-06-02 21:46:53 · 318 阅读 · 0 评论 -
动态规划 - 归档
换钱的最少货币数(完全背包)动态规划:#include<iostream>#include<string>#include<vector>#include<algorithm>#define MAXVALUE 0x7fffffffusing namespace std;int main() { int n; int aim; ...原创 2020-06-30 21:00:14 · 273 阅读 · 0 评论 -
优先队列与堆排序
概述我所知道的,广义的队列有三种:stack栈是一种,queue队列是一种,还有一种比较特殊,priorityqueue优先队列为什么特殊,因为前面两种队列,往队列push元素的时候,push过程就是很简单的把元素放在头部或者尾部就行了,pop的时候也是简单的取出头尾数据。而优先队列更加“智能化”,你把数据push进队尾的时候,push过程要在内部把数据进行整理,使队首元素总保持原创 2017-12-02 14:06:06 · 114 阅读 · 0 评论 -
归并排序.
接下来是归并排序。原创 2017-12-10 10:15:08 · 102 阅读 · 0 评论 -
32. Longest Valid Parentheses
###解题思路暴力枚举###代码```cppclassSolution{public:intlongestValidParentheses(strings){intmaxlength=0;for(inti=0;i<s.size();i++){for...原创 2021-08-23 23:11:06 · 104 阅读 · 0 评论 -
从快速排序开始
打算重新学习下算法,顺便把相关的东西整理到自己博客上,博客一搜重复的内容一大片,不论是正确还是错误的都带着很多主观看法,所以写这个不是为了成为参考资料,只为整理下自己的思路、备忘,如果被网路上的同学们检索到,希望大家能够自己甄别其中好坏,有问题的地方,也希望能够提出来大家共同学习。这里从快速排序和归并排序开始,因为对于新入行的同学来讲,这两个排序是理解递归的一个很好的切入点。直接进原创 2017-11-13 22:11:15 · 138 阅读 · 0 评论