随笔分类 - 算法技巧
摘要:写在前面: 1. 计算一个数的2二进制位个数: 或者: 2. 除法和求余数的方法 201. 数字范围按位与 给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。 示例 1: 输入: [5,7]输出: 4示例 2:
阅读全文
摘要:1. 计算 1!*2!*3!*....*n!的结果末尾中0的个数 先考虑如何计算单个数的阶乘n! 思路: 0实际上来源于10,而10来源于2×5,所以只需要判断n×(n−1)×(n−2)×...×1n×(n−1)×(n−2)×...×1可以拆分成多少个2×52×5即可。而2的个数明显多于5的个数,所
阅读全文
摘要:1. 946. 验证栈序列 给定 pushed 和 popped 两个序列,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 示例 1: 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2
阅读全文
摘要:39. 组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。解集不能包含重复的组合。
阅读全文
摘要:435. 无重叠区间 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1: 输入: [ [1,2], [2,3], [3,4], [1,3] ] 输出: 1
阅读全文
摘要:序列模式匹配 给定文本text和待匹配字符串pattern,二者皆只包含小写字母,并且不为空。在text中找出匹配pattern的最短字符串,匹配指按序包含pattern,但不要求pattern连续。如text为abaacxbcbbbbacc,pattern为cbc,text中满足条件的是abaac
阅读全文
摘要:746. 使用最小花费爬楼梯 & 牛客网 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。 您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为
阅读全文
摘要:将力扣或者牛客的回文专题总结于此。 1. leetcode 647 回文子串 给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例 1: 输入: "abc"输出: 3解释: 三个回文子串: "a", "
阅读全文
摘要:数组操作大多利用指针来控制范围,将一些经典解法总结于此。 1. leetcode 75. Sort Colors 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、
阅读全文
摘要:本文分为两部分:第一部分转载一篇很好的递归总结博文,第二部分是我自己对递归思想的理解以及几道编程题。 第一部分 3道题彻底搞定:套路解决递归问题(转载) 前言 相信不少同学和我一样,在刚学完数据结构后开始刷算法题时,遇到递归的问题总是很头疼,而一看解答,却发现大佬们几行递归代码就优雅的解决了问题。从
阅读全文