leetCdoe
lc199408
这个作者很懒,什么都没留下…
展开
-
唯一摩尔斯密码词
题目 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-“, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[“.-“,”-…”,”-.-.”,”-..”,”.”,”..-.”,”–.”,”….”,”..”,”.—”,”-.-“,”.-..”,”–”,”-....原创 2018-04-24 22:28:16 · 1498 阅读 · 0 评论 -
括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]思考 生成括号有如下几个特点: 1.左括号和右括号的数目都是对数n 2.必须先写一个左括号,才能写出一个右括号 ...原创 2018-07-06 10:06:55 · 264 阅读 · 0 评论 -
电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明: 尽管原创 2018-07-05 19:05:29 · 390 阅读 · 0 评论 -
整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 ...原创 2018-07-05 17:44:11 · 336 阅读 · 0 评论 -
整数拆分
给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。例如,给定 n = 2,返回1(2 = 1 + 1);给定 n = 10,返回36(10 = 3 + 3 + 4)。注意:你可以假设 n 不小于2且不大于58。思考: 一个正整数可以被拆分成若干个正整数,如何使拆分出的正整数乘积最大? 此题明显是不能用有穷遍历的,关键点在于找...原创 2018-07-05 16:26:20 · 1188 阅读 · 0 评论 -
盛最多水的容器
给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。注意:你不能倾斜容器,n 至少是2。乍一看很简单,嵌套循环遍历就完事了 int maxArea=0; for(int i=0...原创 2018-07-03 18:50:07 · 114 阅读 · 0 评论 -
字符串转整数 (atoi)
实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第一个非空字...原创 2018-07-03 17:34:32 · 159 阅读 · 0 评论 -
删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例: //链表的结构定义 public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数...原创 2018-07-03 16:57:00 · 150 阅读 · 0 评论 -
4的幂
给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂。示例:当 num = 16 时 ,返回 true 。 当 num = 5时,返回 false。问题进阶:你能不使用循环/递归来解决这个问题吗?思考 4的幂具有以下性质: 为正数,且取4的模肯定为0。 使用递归可以轻松解决。 public boolean isPowerOfFour(i...原创 2018-06-29 18:18:36 · 956 阅读 · 0 评论 -
错误的集合
集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。 给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。 示例 1:输入: nums = [1,2,2,4]输出: [2,3]注意: 给定数组...原创 2018-06-29 17:44:09 · 629 阅读 · 1 评论 -
分发饼干
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值为正。 ...原创 2018-06-29 15:17:31 · 1013 阅读 · 0 评论 -
最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思考 判断回文的方式: 1.使用StringBuilder的reverse()的方法得到倒序字符串和原字符串比较,很简单,但是效率低。 2.回...原创 2018-06-29 11:05:45 · 177 阅读 · 0 评论 -
2. 两数相加
题目 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807思考:加法的运算方式即...原创 2018-04-25 20:22:39 · 162 阅读 · 0 评论 -
两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。思考: 可以将链表分成两部分来看,前两个节点和后面节点,又可以用递归对后面节点进行相同的分解,所以只需...原创 2018-07-06 11:21:22 · 302 阅读 · 0 评论