摘要: 题目链接:滑动窗口的最大值 题意:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下 阅读全文
posted @ 2020-03-05 23:58 甜酒果。 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目链接:数据流中的中位数 题意:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读 阅读全文
posted @ 2020-03-05 23:39 甜酒果。 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题目链接:二叉搜索树的第k个结点 题意:给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 题解:之前有讲过BST的性质,中序遍历就可以得到一个递增的序列。也就是第k小就用这个性质。 遍历左子树,如果在左子树中找到节点,返 阅读全文
posted @ 2020-03-05 23:36 甜酒果。 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目链接:把二叉树打印成多行 题意:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 题解:用一个队列,每层压入队列,再放入数组里。层序遍历。 代码: 1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 str 阅读全文
posted @ 2020-03-05 23:23 甜酒果。 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目链接:按之字形顺序打印二叉树 题意:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 题解:层序遍历。只不过偶数层翻转一下顺序就能变成之字型。 代码: 1 /* 2 struct TreeNode { 阅读全文
posted @ 2020-03-05 23:20 甜酒果。 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目链接:对称的二叉树 题意:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 题解:判断树的左子树右子树的节点值是否相等。且镜像对称,即左子树的左节点=右子树的右节点。递归即可。 代码: 1 /* 2 struct TreeNode { 阅读全文
posted @ 2020-03-05 23:17 甜酒果。 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题目链接:二叉树的下一个结点 题意:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 题解:中序遍历查找下一个节点。也是数据结构里的常见题。 当前节点如果有右子树,下一个节点是右子树最左节点。 当前节点如果没有右子 阅读全文
posted @ 2020-03-05 22:55 甜酒果。 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 题目链接:删除链表中重复的结点 题意:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 题解:感觉也是数据结构里的常见题。如果找到当前节点的重复节点,就找到它最后一个重复节点。 阅读全文
posted @ 2020-03-05 22:50 甜酒果。 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目链接:链表中环的入口结点 题意:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 题解:我们设置两个指针,一个走的快,一个走得慢。如果有环,快慢指针一定会相遇。 并且,两个指针一个从头走,一个走相遇点走,最后一定会在环入口相遇。 所以我们先找到环节点的个数,再让快指针先 阅读全文
posted @ 2020-03-05 22:40 甜酒果。 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目链接:字符流中第一个不重复的字符 题意:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 题解:开一个数组存储字符出现的次数,然后遍 阅读全文
posted @ 2020-03-05 22:25 甜酒果。 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目链接:表示数值的字符串 题意:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 题解:这个就是模 阅读全文
posted @ 2020-03-05 22:19 甜酒果。 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目链接:正则表达式匹配 题意:请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa 阅读全文
posted @ 2020-03-05 21:53 甜酒果。 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题目链接:构建乘积数组 题意:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * ... * A 阅读全文
posted @ 2020-03-05 21:30 甜酒果。 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目链接:数组中重复的数字 题意:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 阅读全文
posted @ 2020-03-05 00:05 甜酒果。 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目链接:把字符串转换成整数 题意:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 题解:过滤掉空格,判断正负号,然后判断每个字符是否是数字,进行转换。但是!!!!这里要考虑一个溢出 做法就是记录正负号的时候,做一个标记,在最后和pow 阅读全文
posted @ 2020-03-05 00:02 甜酒果。 阅读(143) 评论(0) 推荐(0) 编辑