常见算法题型
常见算法题型及系列题目
口木西成
沙坡村男子技术学院,java后台开发
展开
-
区间调度-重叠-会议室问题
基础思路这类问题都是让你算出给出的区间里有多少个互不相交的区间个数。思路是每次选择结束时间最早的。将区间按结束时间排序,选择第一个区间的结束时间做标准;只要后续区间的开始时间小于这个结束时间,就认为相交;区间的开始时间大于这个结束时间,认为不相交,并更新结束时间。举例无重叠区间 leetcode 435题目描述给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠...原创 2020-03-18 11:28:23 · 328 阅读 · 0 评论 -
小和问题和逆序对问题
题目描述在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。例如:对于数组[1,3,4,2,5]1左边比1小的数,没有;3左边比3小的数,1;4左边比4小的数,1、3;2左边比2小的数,1;5左边比5小的数,1、3、4、2;所以小和为1+1+3+1+1+3+4+2=16算法思想归并排序。在归并算法的基础上做略微改动,即merge中添加了变量r...原创 2020-03-14 14:30:20 · 1691 阅读 · 1 评论 -
5最长回文子串
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”思路分析回文串问题的核心是,从中间向两边扩散来判断回文串。每次传入left和right两个指针,所指元素相同就left- -,right++,直到...原创 2020-03-12 15:10:01 · 116 阅读 · 0 评论 -
42接雨水问题
题目描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6思路分析看题的第一反应就是无...原创 2020-03-08 12:40:35 · 347 阅读 · 0 评论 -
72编辑距离
题目描述给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = “horse”, word2 = “ros”输出: 3解释:horse -> r...原创 2020-03-08 12:38:47 · 93 阅读 · 0 评论 -
计算质数
基本解法埃氏筛法。若找到一个质数,则此质数的倍数都不是质数。降低时间复杂度:外层遍历到sqrt(n),因为sqrt(n)是反转临界点,之后的整除因子都是前面的反过来。eg.12=3*4;12=4*3内层遍历,直接从平方开始,若从乘2开始,会有冗余。eg.i=4,计算4*2,4*3,实际上在计算2和3时就已经计算过了。题目距离leetcode 204 计数质数统计所有小于非...原创 2020-03-05 13:51:28 · 205 阅读 · 0 评论 -
集合中缺失重复各一个元素
基本解法排序:将元素从小到大排序,索引对应元素不符就是所求元素。具体解法有:Arrays.Sort()哈希表存储映射:将每个索引和元素映射,最后没有映射或重复映射就是所求。具体解法有:归位法,将每个元素都归位到对应的索引,重复归位的元素就是所求置负数,将访问元素对应索引的元素置负,表示该索引被对应,最后为正的元素的对应索引即是所求(见举例)异或:基于a^a=0,a^...原创 2020-03-05 13:50:16 · 219 阅读 · 0 评论 -
去除有序数组/链表的重复元素
基本解法对于数组问题,基本思路都是把元素换到最后,避免在中间删除元素。以此可以想出双指针方法。fast先走,遇到不重复元素,就让slow++,并交换元素。fast遍历结束,nums[0-slow]就是不重复元素,重复元素都在末尾。去除有序数组和有序链表的重复元素都可用这个方法。题目举例leetcode 26 删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,...原创 2020-03-05 13:47:51 · 189 阅读 · 0 评论