leetcode
NsfNSF
这个作者很懒,什么都没留下…
展开
-
算法题:合法二叉搜索树
算法题:合法二叉搜索树题目实现一个函数,检查一棵二叉树是否为二叉搜索树.思路首先需要明确二叉搜索树的定义:对于任意一个根结点,如果它的左子树存在,则它左子树中的所有结点值小于根节点的值;如果它的右子树存在,则它右子树中的所有节点值大于根节点的值。对于二叉树的题目,一般都是利用DFS来做。dfs(root, LONG_MIN, LONG_MAX)作为入口,之后再递归地判断左子树中的所有结点值小于根节点;再递归地判断右子树中的所有结点值大于根节点。在递归过程中,如果不满足二叉搜索树的定义,则retur原创 2021-01-10 14:51:41 · 126 阅读 · 0 评论 -
算法题:堆盘子
算法题:堆盘子问题描述设想有一堆盘子,堆太高可能会倒下来。因此,在现实生活中,盘子堆到一定高度时,我们就会另外堆一堆盘子。请实现数据结构SetOfStacks,模拟这种行为。SetOfStacks应该由多个栈组成,并且在前一个栈填满时新建一个栈。此外,SetOfStacks.push()和SetOfStacks.pop()应该与普通栈的操作方法相同(也就是说,pop()返回的值,应该跟只有一个栈时的情况一样)。 进阶:实现一个popAt(int index)方法,根据指定的子栈,执行pop操作。当某个原创 2021-01-10 14:50:56 · 519 阅读 · 0 评论 -
Leetcode 399: 除法求值
Leetcode 399: 除法求值题目给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj = ? 的结果作为答案。返回 所有问题的答原创 2021-01-10 14:49:43 · 136 阅读 · 0 评论 -
Leetcode 300: 最长递增子序列
Leetcode 300: 最长递增子序列问题描述:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-increasing-subsequence著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请原创 2020-12-22 21:54:09 · 240 阅读 · 0 评论 -
剑指offer题目易错点
题目剑指Offer03:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Note: 这道题并不能运用抽屉原理。因为数字范原创 2020-12-13 16:38:46 · 96 阅读 · 0 评论 -
C++笔记—— “::“双冒号的一种用法
今天在做leetcode的一道题时,碰到了一个错误,涉及到::作用域运算符的一个特殊用法。具体如下:class MinStack {public: /** initialize your data structure here. */ stack<int> q; stack<int> minq; MinStack() { } void push(int x) { q.push(x); if原创 2020-08-27 23:22:05 · 237 阅读 · 0 评论 -
LeetCode: 链表部分逆序(c++实现)
LeetCode: 将链表中的索引为m到n的m-n+1个数逆置,输出该链表(c++实现)举例说明假设现在有一个链表:1->2->3->4->5,现在要求将索引 2 到 4 的三个数,也就是1 2 3逆序,使得最终的输出为 1->4->3->2->5.源代码Note: 代码中的head表示头节点,指向的是第一个节点(也就是例子中的1),而不是指...原创 2019-09-16 21:38:00 · 282 阅读 · 0 评论 -
LeetCode:合并两个有序的链表(c++实现)
将两个有序(升序)的链表合并为一个新的有序的链表(c++实现)问题描述:现有一个头结点为Ahead的A链表,如1->3->5->7,同时还有一个头结点为Bhead的B链表,如2->4->6->8->10->12。最终要将两者合并成一个新的链表C,如1->2->3->4->5->6->7->8->10...原创 2019-09-18 22:06:07 · 853 阅读 · 0 评论 -
C++:用堆来找到一组数中第K大的数字
C++:用数据结构-堆来找到一组数中第K大的数字堆的概念:堆,简单来说就是最大(小)值先出的完全二叉树。也就是这颗完全二叉树的特点是,它每棵左右子树的根结点的值是该子树中所有结点中最大(小)的。而完全二叉树的概念是由满二叉树引出的。简单来说,若一个满二叉树有n层,那么完全二叉树就是,它的前n-1层是满的,但第n层并不是满的,它会"缺"几个叶子结点。也就是,第n层,从左往右看,叶子结点是 左,右...原创 2019-09-23 21:27:39 · 836 阅读 · 2 评论