- 博客(26)
- 资源 (7)
- 收藏
- 关注
原创 Leetcode 856 Score of Parentheses
题目描述:解题思路:看到这些括号匹配首先想到用栈,看到‘(’压栈并将factor因子加1 看到‘)’将栈顶'('弹栈,并将因子减1,如果和栈顶元素下标距离为1,则累加到结果中 只有相邻的'('和')'才会对res产生影响代码如下(c++)版本:class Solution {public: int scoreOfParentheses(string S) { deq...
2019-03-04 10:45:37
218
原创 Leetcode 975 Odd Even Jump
思路:从后往前递推 分配两个数组,odd和even数组,odd【i】表示在nums【i】上奇数此跳是否能够成功,同理even数组,初始时odd【len-1】=even【len-1】= true 第奇数跳要求找到A【j】>=A【i】的最小A【j】,偶数此跳要求找到找到A【j】<=A【i】的最大A【i】 最后统计出odd【i】中为true的个数初始代码(c++) 超时...
2019-03-03 11:15:19
288
原创 Leetcode 946 Validate Stack Sequence
题目描述:思路:用栈模拟pushed,用cur标记popped,如果当前栈顶元素等于popped[cur],则弹栈,否则继续压栈,最后检查栈是否为空代码如下(c++):class Solution {public: bool validateStackSequences(vector<int>& pushed, vector<int>&...
2019-03-02 10:38:52
155
原创 Leetcode 341 Flatten Nested List Iterator
题目描述:代码如下(c++)版本:class NestedIterator {public: queue<int>st; NestedIterator(vector<NestedInteger> &nestedList) { init(nestedList); } void init(vector&l...
2019-03-01 12:16:07
130
原创 Leetcode 173 Binary Search Tree iterator
题目描述类似于通过栈实现二叉查找树的中序遍历,将其转换为链表,将每个树节点的left指针当做next的使用。代码如下:class BSTIterator {public: TreeNode* head; BSTIterator(TreeNode* root) { bool first = false; deque<TreeNode*> stack; he...
2019-02-28 13:36:19
118
原创 Leetcode 145 Binary Tree Postorder Traversal
题目描述:这题紧接着144题,二叉树后序遍历的非递归思路:利用前一个访问的元素和当前栈顶元素的关系,如果是当前栈顶元素的左儿子或者右儿子为前一个访问的元素,则表示当前元素的左右子树均被访问过了,否则将当前节点左右子树压栈代码如下(c++)版本:class Solution {public: vector<int> postorderTraversal(Tree...
2019-02-27 16:22:42
120
原创 Leetcode 144 Binary Tree PreOrder Traversal
题目描述:要求使用非递归实现:代码如下(C++版本)class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> res; deque<TreeNode*> stack; if (root == NULL) retur...
2019-02-26 23:24:03
97
原创 Leetcode 331 Verify PreOrder Serialization of a Binary Tree
题目描述:首先第一步必须得将原序列化字符串按照","拆分成字符串数组。由于C++标准库没有自带的split函数,必须自己手写。直接搬用博客上的实现:http://www.cnblogs.com/lyf-sunicey/p/8489472.html二、用STL进行字符串的分割涉及到string类的两个函数find和substr:1、find函数原型:size_t find ( c...
2019-02-25 17:03:18
111
原创 Leetcode 739 Daily Temperatures
题目描述:此题同样被归类于栈标签下,解题思路,使用递减栈,如果当前温度值大于栈定温度,弹栈,二者间隔天数为栈顶元素需要的回温天数。如果当前温度低于栈顶温度,则压栈。代码如下(C++):class Solution {public: vector<int> dailyTemperatures(vector<int>& T) { vector&...
2019-02-24 12:03:11
100
原创 Leetcode 726 Number of Atoms
第726题被归类于栈下,主要难点在于括号的处理,我采取的思路是将左括号压栈,然后遇到右括号弹如临时栈,在从临时栈弹回来,弹回来时乘以右括号下的系数。代码如下(C++)class Solution {public: string countOfAtoms(string formula) { deque<string> atoms; deque<int>...
2019-02-23 16:54:20
234
原创 Leetcode 921 Minimum Add to Make Parentheses Valid
Leetcode 921 Minimum Add to Make Parentheses Valid我的解法:本题归类于栈标签下,所以用栈来解决,如果")"和栈顶的"("可以相互匹配,将栈顶元素弹出,否则压栈,最后栈中元素个数即为所求。代码如下(C++):class Solution {public: int minAddToMakeValid(string S) { if ...
2019-02-22 19:30:17
133
转载 extern "C"
转载自:https://www.cnblogs.com/carsonzhu/p/5272271.htmlextern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函...
2018-08-08 10:02:00
78
转载 C++隐式转换的原则
转载自:https://www.cnblogs.com/solidblog/p/3381628.htmlC++隐式转换的原则基本数据类型 基本数据类型的转换以取值范围的作为转换基础(保证精度不丢失)。 隐式转换发生在从小->大的转换中。比如从char转换为int。 从int-》long。 自定义对象 子类对象可以隐式的转换为父类对象。参考:http://develope...
2018-07-28 20:46:02
1088
转载 c++ 四种强制类型转换
转载自:https://blog.csdn.net/ydar95/article/details/69822540const_cast , static_cast , dynamic_cast , reinterpret_cast1. C风格的强制转换C风格的强制转换(Type Cast)容易理解,不管什么类型的转换都可以使用使用下面的方式. TypeName b = (Type...
2018-07-27 20:11:37
56308
1
转载 C++内存分配
转载自https://blog.csdn.net/Mary19920410/article/details/69053361C++内存分配在c中分为这几个存储区:栈区( stack ) 由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。其操作方式类似于数据结构中的栈。 堆区( heap ) 一般由程序员分配释放, 若程序员不释放,程...
2018-07-26 21:05:55
115
转载 leetcode 28 Implement strStr()
Rolling hash基本思想是用一个hashcode来表示一个字符串,为了保证hash的唯一性,我们用比字符集大的素数为底,以这个素数的幂为基。举例来说,字符集是小写字母集,取素数29为底。比如字符串“abacd",转化为hashcode=1+2*29+1*29^2+3*29^3+4*29^4。然后是如何在前进一步的时候计算新的hashcode,比如匹配串是原串是”abacde“,匹配串长度为
2017-08-13 19:50:00
136
转载 leetcode 10 Regular Expression Matching
文章转载自:http://www.cnblogs.com/grandyang/p/4461713.html[LeetCode] Regular Expression Matching 正则表达式匹配 Implement regular expression matching with support for '.' and '*'.'.' Matches
2017-07-18 21:32:57
304
转载 letcode 9 Palindrome Number
文章转载自:http://www.cnblogs.com/grandyang/p/4125510.html[LeetCode] Palindrome Number 验证回文数字 Determine whether an integer is a palindrome. Do this without extra space.click to show
2017-07-18 08:29:03
293
转载 leetcode 8 String to Integer (atoi)
文章转载自:http://www.cnblogs.com/grandyang/p/4125537.html[LeetCode] String to Integer (atoi) 字符串转为整数 Implement atoi to convert a string to an integer.Hint: Carefully consider all pos
2017-07-17 16:59:38
301
转载 leetcode 7 Reverse Integer
文章转载自:http://www.cnblogs.com/grandyang/p/4125588.htmlReverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321click to show spoilers.Have you thought ab
2017-07-17 10:47:53
154
转载 letcoode 6 ZigZag Conversion
文章转载自:http://www.cnblogs.com/sanghai/p/3632528.htmlZigZag ConversionZigzag:即循环对角线结构(0 8 16 1 79 1517 2 6 10
2017-07-16 19:53:56
269
转载 leetcode 5 Longest Palindromic Substring(2)
转载自:http://www.cnblogs.com/bitzhuwei/p/Longest-Palindromic-Substring-Part-II.html[译+改]最长回文子串(Longest Palindromic Substring) Part II阅读目录(Content)提示一个O(N)的算法(Manacher)注意看的更远[
2017-07-15 21:48:21
200
转载 leetcode 5 Longest Palindromic Substring(1)
转载自:http://www.cnblogs.com/bitzhuwei/p/Longest-Palindromic-Substring-Par-I.html阅读目录(Content)提示一个常见的错误暴力穷举法O(N3)动态规划法O(N2)时间O(N2)空间更简单的算法O(N2)时间O(1)空间提问O(N)[译]最长回文子串(Longest Palindromic S
2017-07-15 21:46:04
139
转载 KMP算法
文章转载:http://blog.csdn.net/joylnwang/article/details/6778316/KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。但是相较于其他模式匹配算法,该算法晦涩难懂,第一次接触该算法的读者往往会看得一头雾水,主要原
2017-07-11 10:53:21
160
转载 leetcode 04 Median of Two Sorted Arrays
这道题让我们求两个有序数组的中位数,而且限制了时间复杂度为O(log (m+n)),看到这个时间复杂度,自然而然的想到了应该使用二分查找法来求解。但是这道题被定义为Hard也是有其原因的,难就难在要在两个未合并的有序数组之间使用二分法,这里我们需要定义一个函数来找到第K个元素,由于两个数组长度之和的奇偶不确定,因此需要分情况来讨论,对于奇数的情况,直接找到最中间的数即可,偶数的话需要求最中间两个数
2017-07-10 09:47:39
239
转载 C++输出格式
一:标准输入函数cin不知道说它是个函数对还是不对,它是代表标准的输入设备--键盘。他是属于流的,他的用法和流的用法是一样的。也就是:cin>>变量;小小的说明一下,输入多个变量可以写在一行,如:cin>>x>>y>>z;这样写不是不允许,而是不好看,如果是不同的变量类型,那就更是没头没脑了。除了你,人家是不知道该输入什么的,所以,一般在输入语句的前面,我们一般都要做一个提示,
2015-10-07 19:16:11
147
程序员的数学
2014-08-30
计算机组成与设计硬件软件接口
2014-08-30
自动机理论、语言和计算导引
2014-08-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人