随笔分类 - 剑指offer
摘要:题意描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。 解题思
阅读全文
摘要:题意描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述 题目保证输入的数组中没有的相同的数字数据范围: 对于%50的数据,size
阅读全文
摘要:剑指offer:正则表达式匹配 题意描述 请实现一个函数用来匹配包括'.'和' '的正则表达式。模式中的字符'.'表示任意一个字符,而' '表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab ac a"匹配,但
阅读全文
摘要:题意描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 解题思路 一、思路一 1. 使用两个栈,一个栈保存奇数层,一个栈保存偶数层。 2. 遍历奇数层时,奇数栈中的元素添加入list集合,将子节点入偶
阅读全文
摘要:题意描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节
阅读全文
摘要:题意描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 解题思路 一、思路一 一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x \ 3 ^ y \ 5 ^
阅读全文
摘要:题意描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路 一、递归 根据二叉树的前序遍历与中序遍历,
阅读全文
摘要:题意描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快
阅读全文
摘要:题意描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述 如果当前字符流没有存在出现一次的字符,返回 字符。 解题思路 一、
阅读全文
摘要:题意描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m 1的那个小朋友要出列唱首歌,然后可以在礼品箱中任
阅读全文
摘要:题意描述 在一个字符串(0 map = new HashMap(); for(int i=0;i<str.length();i++){ if (map.containsKey(str.charAt(i))) //map中存在字符,value++ map.put(str.charAt(i), map.
阅读全文
摘要:题意描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6, 3, 2,7, 15,1
阅读全文
摘要:题意描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
阅读全文
摘要:题意描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
阅读全文
摘要:题意描述 求出1 13的整数中1出现的次数,并算出100 1300的整数中1出现的次数?为此他特别数了一下1 13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到
阅读全文
摘要:题意描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 解题思路 一、递归 1. 从上向下遍历,求出每个节点的左右子树的深度 2. 根据左右子树的深度差判断是否为AVL树 二、非递归 使用非递归计算每个节点左右子树的深度,根据深度差判断
阅读全文
摘要:题意描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。 输入描述 输入 : push= {1,2,3,4,5} pop = {4,5,3,2,1} 输出:true 输入 : push = {1,2,3,4,5} pop = {
阅读全文
摘要:题意描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n 1并且m 1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是
阅读全文
摘要:题意描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4]
阅读全文
摘要:题意描述 扑克牌有56张,大小王分别为两张。随机抽出几张牌,判断能不能组成顺子。大小王可以用0表示。并且大小王可以代替任何牌。 解题思路 一、思路一 使用辅助数组,将输入的元素对应到辅助数组之上。如果最大值max与最小值min的差值小于5,说明可以组成顺子。 1. max记录最大值,min记录最小值
阅读全文

浙公网安备 33010602011771号