04 2019 档案
摘要:1、题目描述 2、分析 这道题基本没什么难的,只要分情况讨论即可,需要注意的是分情况时的顺序,如果把15放在最前面可以比较简单的判断出来,如果放在后面则需要增加更多的判断条件。 3、代码 4、相关知识点 string里面的一些函数。
阅读全文
摘要:1、题目描述 2、分析 实现一个栈,这个栈和普通的栈的区别是,它提供一个返回最小值的函数。一开始我以为这道题的栈是需要自己实现的,其实可以不需要,借助STL里面已经有的栈,可以很容易的实现这个,我们只需要设置两个栈,一个按插入顺序保存所有元素,另一个栈在插入的时候比较待插入的元素是不是小于栈顶元素,
阅读全文
摘要:1、题目描述 2、分析 第一次碰到这种类似于设计一个类的题目,题目要求实现两个函数,reset()函数返回未打乱的数组,shuffle()函数返回一个打乱的数组。那么我们需要一个变量ori_num,保存一开始的原来的顺序的数组,这个变量设置为私有的。构造函数里需要用nums对这个变量进行初始化,初始
阅读全文
摘要:1、题目描述 2、分析 题目意思是给一个数组,从其中提取一系列数据,这些数据任意两个数据不能相邻,让这些数据的和为最大值。一开始理解错题意,以为只要将奇数和偶数的位置上的数字加起来再比较就可以了,但是这样会有一种数组解答错误,比如[4,1,1,4]这样其实最大值是8,但是上面那样计算得到的值5。一般
阅读全文
摘要:此系列博客,图片文字观点均是来自侯捷老师讲义课程,仅作为学习用途。 1、深度探索list GNU C2.9版本实现如下: list的定义如下:可以看到其中的数据只有一个指针,所以sizeof(list)等于4。这是在GNU C2.9版本下的结果。 双向链表的节点定义:可以看到其中有一个数据,有两个指
阅读全文
摘要:1、题目描述 2、分析 求一个数组中最大子序和,首先应该想到的做法定义两个变量,一个cur,记录当前的子序和,一个res,最终的子序和。先将cur设置为0,res设置为INT_MIN,然后遍历数组,cur等于cur和cur+nums[i]中的大的值,res等于res和cur中大的值,这样最后返回re
阅读全文
摘要:此系列博客,图片文字观点均是来自侯捷老师讲义课程,仅作为学习用途。 1、源代码之分布 源码之前,了无秘密。标准库是指标准接口,但是具体实现可能会有细微不同。 VS2015的目录下include目录下:里面含有标准库的源码。 DEV-C++的源码也是在其目录下的include中。 2、面向对象编程OP
阅读全文
摘要:1、题目描述 2、分析 输入一个n,问爬上n层台阶,有多少种方法,一次可以爬一个或者两个。很明显这其实是一道斐波那契数列的变形,菲波那切数列在我们之前通常作为递归的理解,但是如果输入的数字比较大,递归很容易造成爆栈原因就是递归层次太多。所以在这里我们意识到这个问题是斐波那契之后,一定不要选择递归的做
阅读全文
摘要:1、题目描述 2、分析 题意是尽少调用给出的判断函数,找到第一个出错的版本号。也就是从1到n中找到第一个使给出的判断函数的第一个返回为true的值。首先想到的应该是二分查找,如果返回为true说明第一次出错在左半部分,如果返回为right说明出错在右半部分,然后根据判断情况更改中间结点的值。 3、代
阅读全文
摘要:1、题目描述 2、分析 首先,这道题给出了两个数组,还有两个数组里元素的个数,并且第一个数组的大小其实是两个数组里元素的总数。题目给了两个排序数组,那么要将两个排序合并起来,我们需要三个指针,一个指向第一个数组的有效的最后一个元素,一个指向第二个数组的最后一个有元素,一个指向第一个数组的最后一个位置
阅读全文
摘要:1、题目描述 2、分析 题目的含义就是将一个从小到大排序的数组变成一个二叉搜索树。二叉搜索树的中序遍历的结果其实就是一个从小到大的排序数组。所以我们反过来思考,首先将数组中间的值作为根节点,之后将数组分为两部分,左半部分插入左子树,右半部分插入右子树,通过递归实现。 3、代码 4、相关知识点 学会将
阅读全文
摘要:此系列博客,图片文字观点均是来自侯捷老师讲义课程,仅作为学习用途。 无意在网上看到侯捷老师的课程,第一眼看见就决定有时间一定要看看。这一部分的东西主要是侯捷老师视频和课件整理而来,让自己对C++和STL有一个比较深入的理解。使用一个东西,却不明白它的道理,这不高明。虽然这句话在别的地方不一定适用,但
阅读全文
摘要:1、题目描述 2、分析 二叉树的前中后遍历,通过递归很容易实现。层序遍历一般需要使用队列来实现。首先把根节点放入队列,使用一个变量记录根节点,然后把根节点取出,使用前面记录的变量找到根节点的左右子节点,放入队列,这样队列里就是下一层的节点。用一个for循环遍历,然后存入一个一维数组。遍历完之后把这个
阅读全文
摘要:1、题目描述 2、分析 判断一棵树是不是对称二叉树,首先看题中对称二叉树的定义,可以总结出,左子树的左子节点的值等于右子树的右子节点的值,左子树的右子节点的值等于右子树的左子节点的值。这样用递归来遍历一个树时,需要传入的就是左子树的左子树和右子树的右子树,并且左子树的右子树和右子树的左子树也要同时满
阅读全文
摘要:本节目录 1、使用程序设计语言访问数据库 2、函数和过程 3、触发器 4、递归查询 5、高级聚集特性 6、OLAP 7、总结 1、使用程序设计语言访问数据库 SQL提供一种强大的声明性查询语言,实现相同的查询,用SQL写查询语句比通用程序设计语言简单,然而数据库程序员必须能够使用通用程序设计语言,原
阅读全文
摘要:1、题目描述 2、分析 验证一棵树是不是二叉搜索树,首先要知道二叉搜索树的特性,根节点大于左子节点,小于右子节点。那么根据这个特性,可以写程序,首先将long型数据传入,是方便可以容纳int的边界。其次,递归时,递归左子树的时候,将根节点的值作为左子树的最大值,如果左子树有一个值大于根节点说明不是二
阅读全文
摘要:1、题目描述 2、分析 二叉树的最大深度是一个很典型的深度优先搜索,很典型的递归应用。 3、代码 4、相关知识点 二叉树的遍历,递归。
阅读全文
摘要:1、题目描述 2、分析 这道题一开始想到的方法是哈希表,将每一个指针指向的地址和出现次数存入一个哈希表,这样可以在遍历一次链表的情况下得到结果,只要有一个指针的指向的地址出现两次就可以证明链表里有环。相反如果说明链表没有环。 还有一种更简单的方法是,使用快慢指针,如果链表有环,那么两个指针肯定会有一
阅读全文
摘要:1、题目描述 2、分析 首先这道题题目很容易理解,输入一个链表判断是不是回文链表。判断的方法也很简单,只要链表的前一半的值和反转之后的后一半的值一一对应那么就是回文的。问题是如何实现。首先第一个问题是如何找到链表的中点,这个方法需要记住,使用快慢指针,快指针每次走两个节点,慢指针每次走一个节点,这样
阅读全文
摘要:1、题目描述 2、分析 输入两个有序链表,合并链表,合并之后依旧是有序的。我们只需要创建一个新节点,然后比较按顺序比较两个链表的值,将小的插入到新节点之后,然后移动指针。如果有一个链表结束,把另一个插入到指针之后。 3、代码 4、相关知识点 链表通常操作中需要新建一个节点,使用新节点来进行操作。
阅读全文
摘要:1、题目 2、分析 链表的题目一般都是需要用一个虚拟的节点来作为中间节点,不停改变指针的值。使用一个cur指针记录当前节点,pre记录前驱节点,temp作为中间变量,其中cur可以直接用head代替。之后通过迭代完成操作。 3、代码 4、相关知识点 链表的指针变换。
阅读全文
摘要:1、题目描述 2、分析 要删除链表中倒数第N个节点,用常规思维,那么我们需要知道链表的长度,这样用长度减去N再加1得到target也就是需要删除的第target个节点。删除链表的节点需要知道删除的节点的前驱,所以在上一步的过程中可以不加1,这样的得到的就是前驱。还要考虑一种情况,如果删除的是头结点,
阅读全文
摘要:1、题目描述 2、分析 题目要求删除链表中一个节点,在之前学习数据结构的时候,删除链表节点需要知道的是删除的点的前驱节点,但是这道题没有给出表头,所以没有办法找到前驱节点,所以需要做的是将当前节点变成前驱节点,这样在进行删除。也就是删除的是题目中给出的节点的下一个节点,所以就需要把下一个节点的值放入
阅读全文
摘要:本节目录 1、连接表达式 2、视图 3、事务 4、完整性约束 5、SQL中的数据类型与模式 6、授权 7、总结 1、连接表达式 在之前简单介绍了自然连接运算,SQL提供了连接运算的其他形式,包括能够指定显式的连接谓词,能够在结果中包含被自然连接排除在外的元组。 1.1 连接条件 前面介绍的join.
阅读全文
摘要:1、题目描述 2、分析 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 因为输入是一个字符串数组,因为找的是所有字符串的公共前缀,所以,我们以一个字符串为基准,遍历这个字符串中的每一个字符,然后用这个字符和剩下的字符串中的字符相比较,如果不等则直接返回,相等将
阅读全文
摘要:1、题目描述 2、分析 如题,输入1,则输出1。输入2,则表示上一个数1,出现1次,则输出11。输入3,上一个数是11,则表示为1出现两次,则输出21,同理输入4,上一个数是21,则输出1211。 也就是根据输入的数字n,求此时对应的输出,那么就要求到前面所有的输出。首先如果输入n小于1,直接输出空
阅读全文
摘要:1、题目描述 2、分析 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 首先判断子字符串是否为空,若为空则返回1。再比较子字符串和源字符串的长度,如果子字符串长那么返回
阅读全文

浙公网安备 33010602011771号