随笔分类 -  leetcode

摘要:题目: 代码实现: 阅读全文
posted @ 2018-05-06 22:55 且听疯吟吖 阅读(2374) 评论(0) 推荐(0)
摘要:题目: 解题思路: 拿到本题,首先想到的是用循环解决该问题,实际提交代码后,超时。后来参考相关答案给出的结果,确实非常精简。 即如果该数能被3的n次方的最大整数整除,被该数即为3的幂。 3的n次方32位的最大整数为1162261467。 代码实现: 阅读全文
posted @ 2018-05-06 22:52 且听疯吟吖 阅读(143) 评论(0) 推荐(0)
摘要:题目: 解题思路: 代码实现: 阅读全文
posted @ 2018-05-06 22:47 且听疯吟吖 阅读(640) 评论(0) 推荐(0)
摘要:题目: 解题思路: 1.n同时被3和5整除输出“FizzBuzz”; 2.n只能被3整除输出"Fizz"; 3.n只能被5整除输出"Buzz"; 4.其他输出数字; 代码实现: 阅读全文
posted @ 2018-05-06 22:43 且听疯吟吖 阅读(590) 评论(0) 推荐(0)
摘要:题目: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素x推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: 解题思路: 使用两个栈,一个栈保存所有的操 阅读全文
posted @ 2018-05-06 22:35 且听疯吟吖 阅读(820) 评论(0) 推荐(0)
摘要:题目: 解题思路: reset操作: 记录下数组的原始位置,reset操作时,直接返回原数组的拷贝即可。 shuffle: 将数组中的每个数与数组中的随机位置进行交换即可。关键点在于如何找到随机交换的位置,并且保证概率相同。 及第i个数可能与数组中任意一个数进行交换。 int t = (i + ra 阅读全文
posted @ 2018-05-06 22:21 且听疯吟吖 阅读(117) 评论(0) 推荐(0)
摘要:题目: 解题思路: 本题简单,动态规划即可实现。由于不能允许相邻的房屋同时被打劫。则如果打劫了第i间房间,则第i-1间房间不能被打劫,设前i间房间打劫所得最大金额为dp[i]。 因此得到递推公式: dp[i] = max(dp[i-1],dp[i-2] + nums[i]); 代码如下: 阅读全文
posted @ 2018-05-06 20:14 且听疯吟吖 阅读(829) 评论(0) 推荐(0)
摘要:题目: 解题思路: O(N)的解法: 分治法: 阅读全文
posted @ 2018-05-06 15:13 且听疯吟吖 阅读(462) 评论(0) 推荐(0)
摘要:题目: 解题思路: 用后一天减去前天得到隔天的利润,然后将该题目转化为求最大子序列和的问题。 另外一种解法,当天的价格减去今天以前的股票最小值: 阅读全文
posted @ 2018-05-06 15:05 且听疯吟吖 阅读(2458) 评论(0) 推荐(0)
摘要:题目: 本题解题思路: 思考过程中考虑到可以用两个map来解决该问题,但发现比较麻烦,后自己写了一个解决方案: 核心数据结构: 用一个排序的双向链表来存储所有的key和key的计数,数列的计数从小到大。 如果返回最小计数的key,则返回队列中的头元素,如果返回最大计数的key,则返回队列的最末位的元 阅读全文
posted @ 2018-05-06 14:56 且听疯吟吖 阅读(788) 评论(0) 推荐(0)
摘要:解题思路: 利用递推公式dp[i] = dp[i-1] + dp[i-2].我们可以知道最后一步可以上一个台阶或者上两个台阶。 代码: 阅读全文
posted @ 2018-05-03 22:30 且听疯吟吖 阅读(1921) 评论(0) 推荐(0)
摘要:题目: 解题思路: 这道题目比较有意思,从表面上看肯定是用二分查找来计算,但是如何找到第一个错误的版本是个难点。用res记录下每次错误的版本。 类似于在一个已经排序好的数组中查找第一个比该数目小但最接近该数的值。此题目作为重点题目变形题目,平时需要多加练习。 代码如下: 代码: 阅读全文
posted @ 2018-05-03 22:25 且听疯吟吖 阅读(333) 评论(0) 推荐(0)
摘要:题目: 解题思路: 从数组的后边起,依次取最大的数据即可。 代码: 阅读全文
posted @ 2018-05-03 22:06 且听疯吟吖 阅读(187) 评论(0) 推荐(0)
摘要:题目: 解题思路如下: 每次取数组最中间的数据作为根节点,数组分为半部分和后半部分,前半部分构成BST的左子树,后半部分构成BST的右子树,依次递归。 代码如下: 阅读全文
posted @ 2018-05-03 22:04 且听疯吟吖 阅读(203) 评论(0) 推荐(0)
摘要:题目: 解题思路: 采用队列即可,按照层次依次将每层的节点入队列即可。 阅读全文
posted @ 2018-05-03 22:00 且听疯吟吖 阅读(170) 评论(0) 推荐(0)
摘要:题目: 解题思路: 递归 1.判断左孩子的值与右孩子的值相等,同时判断左子树和右子树是否都为镜像树。 源代码: 阅读全文
posted @ 2018-05-03 21:59 且听疯吟吖 阅读(129) 评论(0) 推荐(0)
摘要:题目: 1.递归: 满足左边的最大节点小于根节点,右边的最小节点大于根节点。 代码如下: 阅读全文
posted @ 2018-05-03 21:52 且听疯吟吖 阅读(160) 评论(0) 推荐(0)
摘要:题目: 1.解题思路: 递归即可,找到左子树的深度和右子树的深度,取最大的即可。 代码如下: 阅读全文
posted @ 2018-05-03 21:46 且听疯吟吖 阅读(136) 评论(0) 推荐(0)
摘要:题目: 解题思路: 1.快慢指针即可,快指针每次走两步,慢指针每次走一步。快指针追上慢指针,则表示有环。 阅读全文
posted @ 2018-05-03 14:10 且听疯吟吖 阅读(257) 评论(0) 推荐(0)
摘要:题目: 解题思路: 1.非递归。直接将链表中的元素拷贝到数组中,然后比较数组是否为回文数组即可。 2.找到链表的中间节点,从中间节点开始,对聊表的后半部分进行反转,比较链表前半部分和后半部分,是否元素依次相等即可。 阅读全文
posted @ 2018-05-03 14:09 且听疯吟吖 阅读(192) 评论(0) 推荐(0)