LeetCode
hpuhjl
这个作者很懒,什么都没留下…
展开
-
LeetCode 46. 全排列
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]class Solution(object): def permute(self, nums): """ ...原创 2018-07-02 23:59:58 · 2051 阅读 · 0 评论 -
LeetCode 50. Pow(x, n)
实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10 输出: 1024.00000示例 2:输入: 2.10000, 3 输出: 9.26100示例 3:输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25class Solution(object): ...原创 2018-07-03 00:01:03 · 1529 阅读 · 0 评论 -
LeetCode 69. x 的平方根
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4 输出: 2示例 2:输入: 8 输出: 2 说明: 8 的平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去 class Solution(object...原创 2018-07-03 00:02:51 · 1656 阅读 · 0 评论 -
LeetCode 113. 路径总和 II
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1...原创 2018-07-03 00:05:05 · 1732 阅读 · 0 评论 -
LeetCode 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1] 输出: 1示例 2:输入: [4,1,2,1,2] 输出: 4class Solution { func singleNumber(_ nums: [...原创 2018-07-03 00:06:17 · 1532 阅读 · 0 评论 -
LeetCode 191. 位1的个数
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 :输入: 11 输出: 3 解释: 整数 11 的二进制表示为 00000000000000000000000000001011示例 2:输入: 128 输出: 1 解释: 整数 128 的二进制表示为 0000000000000000000000001000000...原创 2018-07-03 00:07:28 · 1936 阅读 · 0 评论 -
LeetCode 231. 2的幂
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1 输出: true 解释: 20 = 1示例 2:输入: 16 输出: true 解释: 24 = 16示例 3:输入: 218 输出: falseclass Solution { func isPowerOfTwo(_ n: Int) -> Bool { ...原创 2018-07-03 00:09:13 · 1652 阅读 · 0 评论 -
LeetCode 258. 各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶: 你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?class Solution { func addDigits(_ num: I...原创 2018-07-03 00:10:35 · 1627 阅读 · 0 评论 -
LeetCode 283. 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12] 输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。class Solution { func moveZeroes(_ nums: inout [Int]) { v...原创 2018-07-03 00:11:27 · 1534 阅读 · 0 评论 -
LeetCode 292. Nim游戏
你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4 输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2 块 还是...原创 2018-07-03 00:13:19 · 1934 阅读 · 0 评论 -
LeetCode 344. 反转字符串
请编写一个函数,其功能是将输入的字符串反转过来。示例:输入:s = “hello” 返回:”olleh”swift codeclass Solution { func reverseString(_ s: String) -> String { return String(s.characters.reversed()) }}...原创 2018-07-04 00:01:33 · 1869 阅读 · 0 评论 -
LeetCode 326. 3的幂
给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27 输出: true示例 2:输入: 0 输出: false示例 3:输入: 9 输出: true示例 4:输入: 45 输出: falseC code:bool isPowerOfThree(int n) { return n > 0 && ...原创 2018-07-04 00:01:44 · 1763 阅读 · 0 评论 -
LeetCode 371. 两整数之和
不使用运算符 + 和-,计算两整数a 、b之和。示例: 若 a = 1 ,b = 2,返回 3。swift codeclass Solution { func getSum(_ a: Int, _ b: Int) -> Int { let result = a ^ b // 因为进位后是进到了前一位, 所以: 左移 ...原创 2018-07-04 00:01:56 · 1914 阅读 · 0 评论 -
LeetCode 412. Fizz Buzz
写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。 示例:n = 15,返回: [ “1”, “2”, “Fizz”, “4”, “Buzz”, “Fizz”, ...原创 2018-07-04 00:02:06 · 1734 阅读 · 0 评论 -
LeetCode 463. 岛屿的周长
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示例 :...原创 2018-07-04 00:02:19 · 1959 阅读 · 0 评论 -
LeetCode 38. 报数
报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (”一个二” , “一个一”) , 即 1211。给定一个正整数 n ,输出报数...原创 2018-07-02 23:59:00 · 1612 阅读 · 0 评论 -
LeetCode 35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5 输出: 2示例 2:输入: [1,3,5,6], 2 输出: 1示例 3:输入: [1,3,5,6], 7 输出: 4示例 4:输入: [1,3,5,6], 0 输...原创 2018-07-02 23:57:54 · 1529 阅读 · 0 评论 -
LeetCode 34. 搜索范围
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10...原创 2018-07-02 23:56:48 · 1723 阅读 · 0 评论 -
LeetCode 2. 两数相加
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807# Definition for ...原创 2018-06-13 21:43:14 · 1690 阅读 · 0 评论 -
LeetCode 6. Z字形变换
将字符串 “PAYPALISHIRING” 以Z字形排列成给定的行数:P A H N A P L S I I G Y I R之后从左往右,逐行读取字符:”PAHNAPLSIIGYIR”实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = “PAYPALISHIRI...原创 2018-06-22 14:44:07 · 1532 阅读 · 0 评论 -
LeetCode 7. 反转整数
给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123 输出: 321示例 2:输入: -123 输出: -321示例 3:输入: 120 输出: 21class Solution(object): def reverse(self, x): """ :type x: int :r...原创 2018-06-22 14:45:47 · 1517 阅读 · 0 评论 -
LeetCode 12. 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000例如, 罗马数字 2 写做 II ,即为两...原创 2018-06-22 14:47:04 · 1559 阅读 · 0 评论 -
LeetCode 13. 罗马数字转整数
题目描述提示帮助提交记录社区讨论阅读解答罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000...原创 2018-06-29 13:58:40 · 1614 阅读 · 0 评论 -
LeetCode 17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:”23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。class Soluti...原创 2018-07-02 23:48:51 · 2177 阅读 · 0 评论 -
LeetCode 20. 有效的括号
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()” 输出: true示例 2:输入: “()[]{}” 输出: true示例 3:输入: “(]” 输出: false...原创 2018-07-02 23:50:07 · 1557 阅读 · 0 评论 -
LeetCode 21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4# Definition for singly-linked list.# class ListNode(object):# def __in...原创 2018-07-02 23:51:22 · 1593 阅读 · 0 评论 -
LeetCode 27. 移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两...原创 2018-07-02 23:53:07 · 1534 阅读 · 0 评论 -
LeetCode 28. 实现strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll” 输出: 2示例 2:输入: haystack = “aaaaa”, needle ...原创 2018-07-02 23:54:15 · 1536 阅读 · 0 评论 -
LeetCode 33. 搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2]...原创 2018-07-02 23:55:35 · 2067 阅读 · 0 评论