
LeetCode(算法)
菜菜~
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
反转整数
题目描述: 给定一个32位有符号整数,将整数中的数字进行反转。 示例1: 输入: 123 输出: 321 示例2: 输入: -123 输出: -321 示例3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储32位有符号整数,其数值范围是[-231,231 - 1]。根据这个假设,如果反转后的整数溢出,则返回0。 参考答案: class So...原创 2018-11-03 22:36:14 · 183 阅读 · 0 评论 -
删除元素
题目描述: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 num...原创 2018-11-19 20:28:26 · 196 阅读 · 0 评论 -
实现strStr()
题目描述: 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa"...原创 2018-11-20 09:21:19 · 128 阅读 · 0 评论 -
括号生成
题目描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 无思路,参考答案中的解释 方法一:暴力法 思路 我们可以生成所有 2^{2n}22n 个 '(' 和 ')' 字符构...转载 2018-11-18 16:52:39 · 165 阅读 · 0 评论 -
在排序数组中查找元素的第一个和最后一个位置
题目描述: 给定一个按照升序排列的整数数组nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n)级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 示例2: 输入: nums = [5,7,...原创 2018-12-13 20:31:03 · 380 阅读 · 0 评论 -
求最长的回文子串
动态规划法 def longestPalindrome(s): k = len(s) matrix = [[0 for i in range(k)] for i in range(k)] logestSubStr = "" logestLen = 0 for j in range(0, k): for i in range(0, j...原创 2019-02-23 11:47:02 · 127 阅读 · 0 评论 -
字符串转换成整数
class Solution: def myAtoi(self, str): if len(str) == 0: return 0 s = list(str.strip()) sign = 1 i = 0 dig = 0 if s[0] == '-': ...原创 2019-02-25 14:51:14 · 149 阅读 · 0 评论 -
最长公共前缀
题目描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。原创 2019-02-27 09:10:55 · 273 阅读 · 0 评论 -
合并两个有序链表
题目描述: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 class ListNode: def __init__(self, x): self.val = x ...原创 2019-02-27 10:40:58 · 128 阅读 · 0 评论 -
爬楼梯
题目描述 假设你正在爬楼梯。需要n阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定n是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 ...原创 2019-03-20 21:38:42 · 171 阅读 · 0 评论 -
有效的括号
题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例1: 输入: "()" 输出: true 示例2: 输入: "()[]{}" 输出: true 示例3: 输入: "(]" 输出: f...原创 2018-11-16 20:36:38 · 122 阅读 · 0 评论 -
删除排序数组中的重复项
题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 ...原创 2018-11-18 19:23:39 · 126 阅读 · 0 评论 -
最接近的三数之和
题目描述: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). class Solut...原创 2018-11-09 14:25:16 · 108 阅读 · 0 评论 -
整数转罗马数字
题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为...原创 2018-11-06 22:19:53 · 200 阅读 · 0 评论 -
无重复字符的最长子串
题目描述: 给定一个字符串,找出不含有重复字符的最长子串的长度。 示例 1:输入: "abcabcbb" 输出: 3 解释: 无重复字符的最长子串是 "abc",其长度为 3。 示例 2:输入: "bbbbb" 输出: 1 解释: 无重复字符的最长子串是 "b",其长度为 1。 示例 3:输入: "pwwkew" 输出: 3 解释: 无重复字符的最长子串是 "wke",其长度为 3原创 2018-11-02 10:41:27 · 122 阅读 · 0 评论 -
回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文...原创 2018-11-04 14:48:32 · 171 阅读 · 0 评论 -
两个排序数组的中位数
题目描述: 给定两个大小为m和n的有序 数组nums1 和 nums2 。 请找出这两个有序数组的中位数。要求算法的时间复杂度为O(log(m + n))。 你可以假设 nums1 和 nums2 不同时为空。 示例1: nums1 = [1, 3] nums2 = [2] 中位数是 2.0 示例2: nums1 = [1, 2] nums2 = [3, 4] ...原创 2018-11-02 20:30:11 · 147 阅读 · 0 评论 -
盛最多水的容器
题目描述: 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 暴力法: 遍历所有的可能,容易溢出 class Solution: ...原创 2018-11-05 21:34:09 · 167 阅读 · 0 评论 -
三数之和
题目描述: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c,使得 a + b + c = 0?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ]...原创 2018-11-08 09:33:48 · 128 阅读 · 0 评论 -
4数之和and N数之和
4数之和题目描述: 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意: 答案中不可以包含重复的四元组。 示例: 给定数组 nums = [1, 0, -1, 0, -2, ...原创 2018-11-15 21:26:17 · 432 阅读 · 0 评论 -
电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]. python版参原创 2018-11-14 15:50:41 · 761 阅读 · 0 评论 -
字符串相乘
题目描述: 定给两个以字符串形式表示的非负整数num1状语从句:num2,报道查看num1状语从句:num2的乘积,它们的乘积也表示为字符串形式。 示例1: 输入: num1 =“2”,num2 =“3” 输出: “6” 示例2: 输入: num1 =“123”,num2 =“456” 输出: “56088” 说明: num1状语从句:num2的...原创 2019-03-21 10:40:22 · 172 阅读 · 0 评论