- 博客(14)
- 收藏
- 关注
原创 [Leecode] C# 89.格雷编码
[Leecode] C# 89.格雷编码题目要求解题思路关键是要找到规律n = 0, [0]n = 1, [0,1] //新的元素1,为0+2^0n = 2, [0,1,3,2] // 新的元素[3,2]为[0,1]->[1,0]后分别加上2^1n = 3, [0,1,3,2,6,7,5,4] // 新的元素[6,7,5,4]为[0,1,3,2]->[2,3,1,0]后...
2020-04-21 20:05:59 175
原创 LeeCode 641.设计循环双端队列
LeeCode641.设计循环双端队列题目题目分析C++ vetor实现代码实现class MyCircularDeque {public: /** Initialize your data structure here. Set the size of the deque to be k. */ MyCircularDeque(int k) { si...
2020-03-30 22:01:11 162
原创 LeeCode 239.滑动窗口最大值
滑动窗口最大值题目描述解题思路通过构建双向队列记录索引并进行如下的操作:我们将窗口逐渐地向右移。1.当队列不空且当前队头索引不在窗口内时,pop_front();2.当队列不空且队尾索引对应的值小于当前值时,pop_back();3.将当前地索引插入队尾。4.返回队首元素为此时窗口内地最大值地索引代码实现class Solution {public: //双向队列...
2020-03-30 21:48:42 156
原创 leecode 155.最小栈
leecode 155.最小栈题目代码实现class MinStack {public: /** initialize your data structure here. */ MinStack() { } void push(int x) { m_stack.push(x); if(m_st...
2020-03-23 19:09:44 164
原创 leecode 150逆波兰表达式求值
leecode150.逆波兰表达式求值题目算法实现将一个普通的中序表达式转换为逆波兰表达式的一般算法是:首先需要分配2个栈,一个作为临时存储运算符的栈S1(含一个结束符号),一个作为输入逆波兰式的栈S2(空栈),S1栈可先放入优先级最低的运算符#,注意,中缀式应以此最低优先级的运算符结束。可指定其他字符,不一定非#不可。从中缀式的左端开始取字符,逐序进行如下步骤:(1)若取出的字符是操...
2020-03-23 19:00:50 235
原创 LeeCode 最长公共前缀
最长公共前缀题目简单思路3个字符串的最长公共前缀一定被包含在前2个字符串的最长公共前缀之中,同理,N个字符串的前缀一定是其中(N-1)个字符串的最长公共前缀与第N个字符串的最长公共前缀。代码实现class Solution {public: string longestCommonPrefix(vector<string>& strs) { ...
2020-03-16 18:30:32 102
原创 LeeCode 有效的括号
有效的括号题目题目分析我们可以借助一个栈实现一个时间复杂度为O(n),空间复杂度为O(n)的算法。新建一个栈。遍历s中的每个元素,尝试将该元素入栈,如果当前元素与栈顶元素形成匹配,则该元素不入栈,且栈顶元素出栈。匹配规则需要再写一个函数,即cmp函数。遍历结束后,如果所有括号符号满足匹配规则,那么栈里应该没有元素了,即栈为空,返回true;若栈不为空,则返回false。代码实现在这里插...
2020-03-16 18:20:11 112
原创 LeeCode 83. 删除排序链表中的重复元素
删除链表中的重复元素题目题目分析递归法:考虑终止条件,当链表中只有一个元素的时候,不可能重复。返回的值应该返回的自然是已经去重的链表的头节点。...
2020-03-16 17:08:13 123
原创 [Leecode] 环形链表
环形链表题目双指针法;class Solution {public: bool hasCycle(ListNode *head) { if(head == nullptr) return false; ListNode *low = head, *fast = head->next; int flag ...
2020-03-09 22:29:33 85
原创 [C++] LeeCode 买卖股票的最佳时机
买卖股票的最佳时机题目要求算法分析题目的意思是开了上帝视角,即我可以提前知道第二天的价格,我知道第二天肯定会涨价,那么我今天就一定会买入。采用贪心算法,即每一步都可以达到最优解,至少不会亏钱。这就存在一天之内既有卖出也有买入的情况。...
2020-03-09 16:50:18 177
原创 [Java] LeeCode 最大子序和
最大子序和问题动态规划、分治法题目根据题目可知,9个数字共有9+8+7+……+1=45种解法,如果遍历求最大值,时间复杂度为O^2,这个速度太慢。解法一:动态规划我们把上面的45种组合进行分类,分解成数量较少的几个子问题:1.以第一个数字结尾的连续序列:[-2],最大值-2。2.以第二个数字结尾的连续序列:[-2,1],[1],最大值1。3.以第三个数字结尾的连续序列……如果能得...
2020-03-02 19:13:02 120
原创 [C++]LeeCode 删除排序数组中的重复项
删除排序数组中的重复项题目我们先来看一下这个题目要求,输入一个数组,输入数组是以引用方式传递的,在函数里修改数组对于调用者是可见的。题目要求常数级别的空间复杂度,这时候首先想到指针,而且需要双指针。由于数组是有序的,第一个指针指向第一个元素,第二个指针指向第二个元素。第二个指针进行遍历,当第二个指针指向的元素大于第一个指针指向的元素时,第一个指针向后指一位。直到for循环完成。代码...
2020-02-23 17:44:59 182
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人