算法
liweiwei1419
简单、诚实。
展开
-
LeetCode 题解之 263. Ugly Number
263. Ugly Number题目描述和难度题目描述:编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例 1:输入: 6输出: true解释: 6 = 2 × 3示例 2:输入: 8输出: true解释: 8 = 2 × 2 × 2示例 3:输入: 14输...原创 2018-06-24 22:28:54 · 459 阅读 · 0 评论 -
LeetCode 题解之 819. Most Common Word
819. Most Common Word题目描述和难度题目描述:给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。示例:输入: paragraph = "B...原创 2018-06-30 23:01:13 · 845 阅读 · 0 评论 -
LeetCode 题解之 693. Binary Number with Alternating Bits
693. Binary Number with Alternating Bits题目描述和难度题目描述:给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。示例 1:输入: 5输出: True解释:5的二进制数是: 101示例 2:输入: 7输出: False解释:7的二进制数是: 111示例 ...原创 2018-06-30 23:18:25 · 369 阅读 · 0 评论 -
LeetCode 题解之 515. Find Largest Value in Each Tree Row
515. Find Largest Value in Each Tree Row题目描述和难度题目描述:您需要在二叉树的每一行中找到最大的值。示例:输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9]题目难度:中等。英文网...原创 2018-06-30 23:27:58 · 306 阅读 · 0 评论 -
LeetCode 题解之 371. Sum of Two Integers
371. Sum of Two Integers题目描述和难度题目描述:不使用运算符 + 和-,计算两整数a 、b之和。示例:若 a = 1 ,b = 2,返回 3。致谢:特别感谢 @fujiaozhu 添加这道问题并创建测试用例。题目难度:简单。英文网址:371. Sum of Two Integers 。中文网址:371. 两整数之和 。思...原创 2018-07-01 18:04:09 · 385 阅读 · 0 评论 -
LeetCode 题解之 326. Power of Three
326. Power of Three题目描述和难度题目描述:给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?题目难度:简单。英文网...原创 2018-07-01 18:11:42 · 302 阅读 · 0 评论 -
LeetCode 题解之 201. Bitwise AND of Numbers Range
201. Bitwise AND of Numbers Range题目描述和难度题目描述:给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。示例 1: 输入: [5,7]输出: 4示例 2:输入: [0,1]输出: 0题目难度:中等。英文网址:201....原创 2018-07-01 19:27:30 · 452 阅读 · 0 评论 -
LeetCode 题解之 191. Number of 1 Bits
191. Number of 1 Bits题目描述和难度题目描述:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 :输入: 11输出: 3解释: 整数 11 的二进制表示为 00000000000000000000000000001011 示例 2:输入: 128输出: 1解释: 整数 128 的二...原创 2018-07-01 19:45:01 · 309 阅读 · 0 评论 -
LeetCode 题解之 190. Reverse Bits
190. Reverse Bits题目描述和难度题目描述:颠倒给定的 32 位无符号整数的二进制位。示例:输入: 43261596输出: 964176192解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 , 返回 964176192,其二进制表示形式为 0011100101111000001010...原创 2018-07-01 19:56:47 · 390 阅读 · 0 评论 -
LeetCode 题解之 824. Goat Latin
824. Goat Latin题目描述和难度题目描述:给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。我们要将句子转换为 “Goat Latin”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头(a, e, i, o, u),在单词后添加"ma"。 例如,单词"apple"变为"apple...原创 2018-06-30 22:55:49 · 760 阅读 · 0 评论 -
LeetCode 题解之 268. Missing Number
268. Missing Number题目描述和难度题目描述:给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间...原创 2018-06-30 22:51:36 · 304 阅读 · 0 评论 -
LeetCode 题解之 264. Ugly Number II
264. Ugly Number II题目描述和难度题目描述:编写一个程序,找出第 n 个丑数。丑数就是只包含质因数&nbsp;2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:&nbsp;&nbsp;1&nbsp;是丑数。n&nbsp;不超过16...原创 2018-06-24 22:31:24 · 430 阅读 · 0 评论 -
LeetCode 题解之 392. Is Subsequence
392. Is Subsequence题目描述和难度题目描述:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 &lt;=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"...原创 2018-06-24 22:33:13 · 812 阅读 · 0 评论 -
LeetCode 题解之 389. Find the Difference(使用位运算解决的问题)
389. Find the Difference题目描述和难度题目描述:给定两个字符串 s 和 t,它们只包含小写字母。字符串&amp;nbsp;t&amp;nbsp;由字符串&amp;nbsp;s&amp;nbsp;随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。&amp;nbsp;示例:输入:s = &quot;abcd&quot;t原创 2018-06-25 01:12:39 · 654 阅读 · 0 评论 -
LeetCode 题解之 121. Best Time to Buy and Sell Stock
121. Best Time to Buy and Sell Stock题目描述和难度题目描述:给定一个数组,它的第&amp;nbsp;i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 ...原创 2018-06-25 09:36:34 · 515 阅读 · 0 评论 -
LeetCode 题解之 122. Best Time to Buy and Sell Stock II
122. Best Time to Buy and Sell Stock II题目描述和难度题目描述:给定一个数组,它的第&nbsp;i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3...原创 2018-06-25 09:43:21 · 332 阅读 · 0 评论 -
LeetCode 题解之 123. Best Time to Buy and Sell Stock III
123. Best Time to Buy and Sell Stock III题目描述和难度题目描述:给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成&nbsp;两笔&nbsp;交易。注意:&nbsp;你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例&nbsp;1:输入: ...原创 2018-06-25 13:25:51 · 654 阅读 · 0 评论 -
LeetCode 题解之 231. Power of Two
231. Power of Two题目描述和难度题目描述:给定一个整数,写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true示例 2:输入: 16输出: true示例 3:输入: 218输出: false题目难度:简单。英文网址:231. Power of Two 。中文网址:231. 2的幂 。思路...原创 2018-06-30 22:24:09 · 382 阅读 · 0 评论 -
LeetCode 题解之 459. Repeated Substring Pattern
459. Repeated Substring Pattern题目描述和难度题目描述:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False...原创 2018-06-30 22:33:57 · 429 阅读 · 0 评论 -
[剑指 Offer 第 2 版第 4 题] “二维数组中的查找”做题记录
[剑指 Offer 第 2 版第 4 题] “二维数组中的查找”做题记录牛客网 online judge 地址:https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tqId=11154&tPage=1&rp=1&ru=/ta/coding-interviews&a...原创 2018-06-20 16:49:00 · 278 阅读 · 0 评论 -
[剑指 Offer 第 2 版第 7 题] “重建二叉树”做题记录
[剑指 Offer 第 2 版第 7 题] “重建二叉树”做题记录牛客网 online judge 地址:https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&tqId=11157&tPage=1&rp=2&ru=%2Fta%2Fcoding-interviews&...原创 2018-06-20 17:01:23 · 242 阅读 · 0 评论 -
[剑指 Offer 第 2 版第 11 题] “旋转数组的最小数字”做题记录
[剑指 Offer 第 2 版第 11 题] “旋转数组的最小数字”做题记录牛客网 online judge 地址:https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba?tpId=13&tqId=11159&tPage=1&rp=1&ru=/ta/coding-interviews...原创 2018-06-20 17:23:49 · 229 阅读 · 0 评论 -
LeetCode 题解之 566. Reshape the Matrix
566. Reshape the Matrix题目描述和难度题目描述:在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操...原创 2018-07-18 19:41:20 · 336 阅读 · 0 评论 -
LeetCode 题解之 82. Remove Duplicates from Sorted List II
82. Remove Duplicates from Sorted List II题目描述和难度题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->...原创 2018-07-14 18:23:06 · 304 阅读 · 0 评论 -
LeetCode 题解之 283. Move Zeroes
283. Move Zeroes题目描述和难度题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。题目难度:简单。英文网址:283. Move Zeroes 。中文网址:283...原创 2018-11-13 12:00:12 · 346 阅读 · 0 评论 -
LeetCode 题解之 452. Minimum Number of Arrows to Burst Balloons
452. Minimum Number of Arrows to Burst Balloons题目描述和难度题目描述:在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在...原创 2018-11-15 13:53:36 · 559 阅读 · 0 评论 -
《剑指 Offer》(第 2 版) 题解(Python 语言实现)第 21-30 题
(1)使用堆实现优先队列动态选择优先级最高的任务执行(2)从 100万个元素中选择前 100每次新放入一个元素之后,把最小堆中的第 1 个元素请出去。(3)多路归并排序(这个思路听起来好像很有意思)如果一个数组有 n 个元素,对这个数组的元素进行 n 路归并排序,此时归并排序就退化成了堆排序。(4)d 叉堆一般的任务使用二叉堆是可以实现的。我们的例子实现的均是最大堆、最大索引堆。可以试着实现以下最小原创 2017-09-15 23:21:03 · 647 阅读 · 0 评论 -
《剑指 Offer》(第 2 版) 题解(Python 语言实现)第 41-50 题
二分搜索树这个数据结构的提出,是自来于“查找表”或者说“字典”这种数据结构的。实现查找表,可以通过“普通数组”“顺序数组”“二分搜索树”来实现。其中,最有效的方式就是实现二分搜索树。图:普通数组、顺序数组、二分搜索树对查找、插入、删除元素的时间复杂度分析对于上表的说明:普通数组的插入操作:要先查找有没有这个元素,然后插入或者覆盖。普通数组的删除操作:要先查找有没有这个元素,然后删除或者什么都不做。顺原创 2017-09-15 23:23:24 · 812 阅读 · 0 评论 -
《剑指 Offer》(第 2 版) 题解(Python 语言实现)第 61-68 题
查找专注于找到这个元素。我们思考一下,在 search 这个方法中,我们应该将什么返回回去,一个好的数据结构应该将内部的数据对外隐藏。二分查找树的包含 contain(返回 true 或者 false) 和查找 search(返回相应的 vlaue 值) 同质。考虑查找成功和失败这两种情况。1、首先实现 contain 方法/** * 在整个二叉树中是否包含 key * * @param ke原创 2017-09-16 23:41:41 · 566 阅读 · 0 评论 -
LeetCode 题解之 240. Search a 2D Matrix II
240. Search a 2D Matrix II题目描述和难度题目描述:编写一个高效的算法来搜索 m x n 矩阵中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。例如,给定以下矩阵 matrix :[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19...原创 2018-07-18 12:28:28 · 368 阅读 · 0 评论 -
LeetCode 题解之 205. Isomorphic Strings
205. Isomorphic Strings题目描述和难度题目描述:给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = "egg", t = "add"输出: ...原创 2018-07-18 08:40:03 · 492 阅读 · 0 评论 -
[剑指 Offer 第 2 版第 12 题] “矩阵中的路径”做题记录
[剑指 Offer 第 2 版第 12 题] “矩阵中的路径”做题记录牛客网 online judge 地址:https://www.nowcoder.com/practice/c61c6999eecb4b8f88a98f66b273a3cc?tpId=13&tqId=11218&tPage=4&rp=4&ru=/ta/coding-interviews&am...原创 2018-06-20 17:25:45 · 310 阅读 · 0 评论 -
[剑指 Offer 第 2 版第 14 题] “剪绳子”做题记录
[剑指 Offer 第 2 版第 14 题] “剪绳子”做题记录牛客网 online judge 地址:https://www.nowcoder.com/practice/623a5ac0ea5b4e5f95552655361ae0a8?tpId=13&tqId=11203&tPage=3&rp=3&ru=/ta/coding-interviews&q...原创 2018-06-20 17:27:03 · 618 阅读 · 0 评论 -
LeetCode 题解之 15. 3Sum
15. 3Sum题目描述和难度题目描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1]...原创 2018-07-02 18:33:06 · 321 阅读 · 0 评论 -
LeetCode 题解之 215. Kth Largest Element in an Array
215. Kth Largest Element in an Array题目描述和难度题目描述:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = ...原创 2018-07-02 19:53:08 · 1867 阅读 · 0 评论 -
LeetCode 题解之 53. Maximum Subarray(连续子数组的最大和问题)
53. Maximum Subarray(连续子数组的最大和问题)题目描述和难度题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(...原创 2018-07-03 00:17:14 · 13455 阅读 · 2 评论 -
LeetCode 题解之 538. Convert BST to Greater Tree
538. Convert BST to Greater Tree题目描述和难度题目描述:给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 二叉搜索树: 5 / \ ...原创 2018-07-03 23:19:14 · 284 阅读 · 0 评论 -
LeetCode 题解之 783. Minimum Distance Between BST Nodes
783. Minimum Distance Between BST Nodes题目描述和难度题目描述:给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。示例:输入: root = [4,2,6,1,3,null,null]输出: 1解释:注意,root是树结点对象(TreeNode object),而不是数组。给定的树 [4,2,6,1,3,...原创 2018-07-03 23:23:26 · 619 阅读 · 0 评论 -
LeetCode 第 993 题:二叉树的堂兄弟结点
EM 算法的思想用拟合的思想来求随机变量的数字特征。例如:模型中有两个未知参数 AAA 和 BBB 需要估计,而 AAA 和 BBB 又存在相互依赖的关系,即知道 AAA 才能推出 BBB,知道了 BBB 才能推出 AAA 。EM 的思路就是先固定其中一个,推测另一个,如此反复。EM 分别代表什么E 表示求期望;M 表示最大化似然函数。(这里没有理解清楚。)EM 算法的用途E...原创 2018-10-23 17:28:52 · 491 阅读 · 0 评论 -
选择排序
选择排序是一种最简单的排序算法。选择排序的简单描述选择排序的过程简而言之,就是不断地选择剩余元素之中的最小者。选择排序的过程简述如下:首先,在第 1 轮循环中找到数组中最小的那个元素,将它和数组的第 1 个元素交换位置(只要找到最小的那个元素的索引,与第 1 个元素交换位置即可,如果第 1 个元素就是最小元素那么这个元素就原地不动);然后,进入第 2 轮循环,在剩下的元素中找到最小的元素,将它与数组原创 2017-07-01 07:45:41 · 436 阅读 · 0 评论