Loading

摘要: 今天是算法数据结构专题的第3篇文章,我们一起来学习一下「Boyer-Moore算法」。 BM算法介绍 各种文本编辑器的 "查找" 功能(Ctrl+F),大多采用 Boyer-Moore 算法。 Boyer-Moore 算法不仅效率高,而且构思巧妙,容易理解。1977 年,德克萨斯大学的 Robert 阅读全文
posted @ 2020-03-06 15:36 RioTian 阅读(448) 评论(0) 推荐(1)
摘要: 今天是算法数据结构专题的第2篇文章,我们一起来学习一下「滑动窗口算法」。 前言 最近刷到leetCode里面的一道算法题,里面有涉及到Sliding windowing算法,因此写一篇文章稍微总结一下 算法题介绍 没有重复字符的子字符的最大长度:给一个字符串,获得没有重复字符的最长子字符的长度 例子 阅读全文
posted @ 2020-03-06 13:01 RioTian 阅读(1713) 评论(0) 推荐(0)
摘要: 题目描述 面试题57 II. 和为s的连续正数序列 难度简单37收藏分享切换为英文关注反馈 输入一个正整数 ,输出所有和为 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 示例 1: 示例 2: 限制: `1 findContinuousSeque 阅读全文
posted @ 2020-03-06 12:55 RioTian 阅读(245) 评论(0) 推荐(0)
摘要: 大侦探福尔摩斯接到一张奇怪的字条: 。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间 ,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 ,代表星期四;第 2 对相同的字符是 ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 阅读全文
posted @ 2020-03-06 11:21 RioTian 阅读(269) 评论(0) 推荐(0)
摘要: 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1 = 能被 5 整除的数字中所有偶数的和; A2 = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n1−n2+n3−n4⋯; A3 = 被 5 除后余 2 的数字的个数; A4 = 被 5 除后余 3 的数字的平 阅读全文
posted @ 2020-03-05 19:36 RioTian 阅读(284) 评论(0) 推荐(0)
摘要: 设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n xn 1。) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零 阅读全文
posted @ 2020-03-05 19:08 RioTian 阅读(364) 评论(0) 推荐(0)
摘要: 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。 输出格式: 每个测试用 阅读全文
posted @ 2020-03-05 16:10 RioTian 阅读(212) 评论(0) 推荐(0)
摘要: 一个数组A中存有N(N 0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M =0)个位置,即将A中的数据由(A0 A1……AN 1)变换为(AN M …… AN 1 A0 A1……AN M 1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计 阅读全文
posted @ 2020-03-05 16:08 RioTian 阅读(356) 评论(0) 推荐(0)
摘要: 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接 阅读全文
posted @ 2020-03-05 15:29 RioTian 阅读(263) 评论(0) 推荐(0)
摘要: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意: 给定 n 是一个正整数。 示例 1: 示例 2: Code 阅读全文
posted @ 2020-03-03 14:07 RioTian 阅读(167) 评论(0) 推荐(1)
摘要: 给定两个字符串 和 ,编写一个函数来判断 是否是 的字母异位词。 示例 1: 示例 2: 说明: 你可以假设字符串只包含小写字母。 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? 方法一:直接sort函数 方法二: map计数 方法三: 数组法(hash) 阅读全文
posted @ 2020-03-03 13:45 RioTian 阅读(226) 评论(0) 推荐(1)
摘要: 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。 初始化 A 和 B 的元素数量分别为 m 和 n。 示例: 输入: A = [1,2,3,0,0,0], m = 3 B = [2,5,6], n = 3 输出: [1,2,2, 阅读全文
posted @ 2020-03-03 13:23 RioTian 阅读(137) 评论(0) 推荐(0)
摘要: Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. Input Specification: Each input file contains one t 阅读全文
posted @ 2020-03-03 11:47 RioTian 阅读(186) 评论(0) 推荐(0)
摘要: 题目描述 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 现给定两棵树,请你判断它们是否是同构的。 输入格式: 输入给出2棵二 阅读全文
posted @ 2020-03-03 11:01 RioTian 阅读(323) 评论(0) 推荐(1)
摘要: 滚动数组是DP中的一种编程思想。简单的理解就是让数组滚动起来,每次都使用固定的几个存储空间,来达到压缩,节省存储空间的作用。起到优化空间,主要应用在递推或动态规划中(如01背包问题)。因为DP题目是一个自底向上的扩展过程,我们常常需要用到的是连续的解,前面的解往往可以舍去。所以用滚动数组优化是很有效 阅读全文
posted @ 2020-03-02 20:30 RioTian 阅读(4422) 评论(0) 推荐(0)