随笔分类 -  leetcode

摘要:序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。 设计一个算法来序列化和反序列化二叉搜索树。 对序列化/反序列化算法的工作方式没有限制。 您只需确保二叉搜索树可以序列化为字符串,并且可以将该字符串反序 阅读全文
posted @ 2019-10-19 23:58 twoheads 阅读(361) 评论(0) 推荐(0) 编辑
摘要:给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 输入:11110110101100000000 输出: 1示例 2: 输入:110001100000100 阅读全文
posted @ 2019-09-06 17:15 twoheads 阅读(601) 评论(0) 推荐(0) 编辑
摘要:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 示例 1: 输 阅读全文
posted @ 2019-09-06 16:24 twoheads 阅读(268) 评论(0) 推荐(0) 编辑
摘要:给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2: 输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 由于 阅读全文
posted @ 2019-09-06 13:48 twoheads 阅读(231) 评论(0) 推荐(0) 编辑
摘要:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 输入: 4->2->1->3输出: 1->2->3->4示例 2: 输入: -1->5->3->4->0输出: -1->0->3->4->5 解答一:归并排序(递归法)题目要求时间空间复杂度分别为O(nlogn) 阅读全文
posted @ 2019-09-06 12:02 twoheads 阅读(277) 评论(0) 推荐(0) 编辑
摘要:该文出自于编程之美中关于最大公约数问题一章。 任意给定两个数字,得到其最大公约数 GCD(greatest common divisor),如果两个数字都很大怎么解决。 分析:最大公约数早在公元前300年,欧几里得的《几何原本》里就提出了一个高效率算法 辗转相除法。 解法一: 假设f(x,y)表示x 阅读全文
posted @ 2019-08-31 13:59 twoheads 阅读(723) 评论(0) 推荐(1) 编辑
摘要:给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1: 输入: s = "leetcode", wordDict = ["leet", " 阅读全文
posted @ 2019-08-02 17:56 twoheads 阅读(421) 评论(0) 推荐(0) 编辑
摘要:给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例 2: 输入: [3,2, 阅读全文
posted @ 2019-08-02 15:41 twoheads 阅读(2520) 评论(0) 推荐(0) 编辑
摘要:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 示例: 输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明: 所有 阅读全文
posted @ 2019-08-02 12:06 twoheads 阅读(175) 评论(0) 推荐(0) 编辑
摘要:给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()"] 来源:力扣(LeetCode)链接:https://leetcod 阅读全文
posted @ 2019-07-30 23:45 twoheads 阅读(391) 评论(0) 推荐(0) 编辑
摘要:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是 阅读全文
posted @ 2019-07-30 21:26 twoheads 阅读(216) 评论(0) 推荐(0) 编辑
摘要:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 阅读全文
posted @ 2019-07-30 17:31 twoheads 阅读(199) 评论(0) 推荐(0) 编辑
摘要:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2: 输入: "cbbd"输出: "bb" 链接:https://leetcode-cn.com/problems 阅读全文
posted @ 2019-07-30 17:09 twoheads 阅读(238) 评论(0) 推荐(0) 编辑
摘要:给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。 一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是) 示例 1: 示例 2: 链接:https 阅读全文
posted @ 2019-05-10 16:00 twoheads 阅读(300) 评论(0) 推荐(0) 编辑
摘要:一条包含字母 A-Z 的消息通过以下方式进行了编码: 给定一个只包含数字的非空字符串,请计算解码方法的总数。 示例 1: 示例 2: 注意,输入100,输出是0.题目未说明。自己写的时候在这个地方犯错。 非常类似于斐波那契序列,可以理解为dp[i]=dp[i-1]+dp[i-2]。但是这个是有条件的 阅读全文
posted @ 2019-05-10 13:48 twoheads 阅读(554) 评论(0) 推荐(0) 编辑
摘要:子集 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 我的: 阅读全文
posted @ 2019-05-09 16:22 twoheads 阅读(229) 评论(0) 推荐(0) 编辑
摘要:(1过,调试很久) 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。 示例 1: 示例 2: 关键:设dp[i][j]表示s3的前i+j个字符可以由s1的前i个字符和s2的前j个字符交织而成 看了这句提示才写出来,中途忽略了length1 + length2 阅读全文
posted @ 2019-05-09 13:58 twoheads 阅读(638) 评论(0) 推荐(0) 编辑
摘要:(没思路,很典型,重要) 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 示例 1: 示例 2: 关键: dp[i][j]代表由word1的前i个子串变为word2的前j个子串的花费 在删除,插入,修改中 阅读全文
posted @ 2019-05-08 16:04 twoheads 阅读(181) 评论(0) 推荐(0) 编辑
摘要:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 基础的动态规划问题,适合理解动态规范的想法 没有像之前设一个行和列+1的数组,这样更直观些不容易犯错 【leetcode-62 动态规划】 不同路径 阅读全文
posted @ 2019-05-08 15:00 twoheads 阅读(223) 评论(0) 推荐(0) 编辑
摘要:分发糖果 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。 那么这样下来,老师至少需要准备多少颗糖果呢? 示例 1: 示 阅读全文
posted @ 2019-05-08 10:03 twoheads 阅读(546) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示