LeetCode练习题
分享力扣网练习题答案,以及自己的个人练习见解。欢迎沟通交流
徐徐长安
心不在焉意难平,何妨吟啸且徐行。
展开
-
LeetCode 删除排序链表中的重复元素(Remove Duplicates from Sorted List)
题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3分析 依次将链表本节点的值和下节点的值相比较,如果相同,则删除本节点,否则后移个节点,继续比较。public ListN...原创 2018-07-19 23:26:19 · 302 阅读 · 0 评论 -
LeetCode 合并两个有序数组(Merge Sorted Array)
题目 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例输入: nums1 = [1,2,3,0,0,0], m = 3 n...原创 2018-08-07 21:16:32 · 298 阅读 · 0 评论 -
LeetCode 删除排序数组中的重复项(Remove Duplicates from Sorted Array)
一.题目给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。二.示例示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面...原创 2018-08-26 20:44:42 · 209 阅读 · 0 评论 -
LeetCode 88. 合并两个有序数组(Merge Sorted Array)
一.题目 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。二.示例 输入: nums1 = [1,2,3,0,0,0], m = ...原创 2018-08-27 22:24:25 · 154 阅读 · 0 评论 -
LeetCode x 的平方根(Sqrt(x))
题目实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 输入: 4 输出: 2思路 利用math自带 函数public int mySqrt(int x) { return (int)Math.sqrt(x); }...原创 2018-07-18 23:03:15 · 885 阅读 · 1 评论 -
LeetCode 爬楼梯(Climbing Stairs)
题目 假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 步 + 1 步 2. 2 步 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 步 + 1...原创 2018-07-18 23:13:06 · 174 阅读 · 0 评论 -
LeetCode . 实现strStr()(Implement strStr())
题目 实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 示例 1: 输入: haystack = “hello”, needle = “ll” 输出: 2 示例 2: 输入: haystack = “aaaaa”,...原创 2018-06-11 22:18:55 · 167 阅读 · 0 评论 -
LeetCode . 搜索插入位置(Search Insert Position)
题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 示例 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,...原创 2018-06-12 22:59:35 · 130 阅读 · 0 评论 -
LeetCode . 报数( Count and Say)
题目 报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:111211211111221 1 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (”一个二” , “一个一”) , 即 1211。 给定一个正整数 n ,输...原创 2018-06-12 23:14:16 · 1005 阅读 · 0 评论 -
LeetCode 最大子序和(Maximum Subarray)
题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 解题思路 暴力法:从数组的每个节点开始向后求和,分别是最长子数组直到最短数组之和,将每个和和结果result比较,如果比result大,则...原创 2018-06-12 23:28:38 · 144 阅读 · 0 评论 -
LeetCode 最后一个单词的长度(Length of Last Word)
题目给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。 描述 示例: 输入: “Hello World” 输出: 5 思路 以空格为分隔符拆开为字符串数组,取最后一个字符串的长度即可public int lengthOfLastWord(Strin...原创 2018-06-13 23:05:07 · 682 阅读 · 0 评论 -
LeetCode 加一(Plus One)
题目 给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 示例 1:输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2:输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入...原创 2018-06-14 23:11:53 · 190 阅读 · 0 评论 -
LeetCode 二进制求和(Add Binary)
题目 给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 示例 1: 输入: a = “11”, b = “1” 输出: “100” 示例 2: 输入: a = “1010”, b = “1011” 输出: “10101”思路 将二进制字符串从后到前依次相加,根据结果来新字符串赋值。 public String a...原创 2018-06-14 23:24:21 · 432 阅读 · 0 评论 -
LeetCode 合并两个有序链表(Merge Two Sorted Lists)
题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4思路 利用递归,将两个链表值比较后插入当前链表的下一位,依次不断递归得到合并链表/** * Definition for singly-...原创 2018-06-10 12:15:30 · 247 阅读 · 0 评论 -
LeetCode 删除排序数组中的重复项(Remove Duplicates from Sorted Array)
题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。...原创 2018-06-10 14:21:12 · 138 阅读 · 0 评论 -
LeetCode . 移除元素(Remove Element)
题目 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 n...原创 2018-06-10 14:46:25 · 663 阅读 · 0 评论 -
LeetCode 两数之和(Two Sum)
题目给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]思路一:暴力破解法,时间复杂度O(n^2) public int[]...原创 2018-06-09 18:07:32 · 5478 阅读 · 0 评论 -
LeetCode 反转整数(Reverse Integer)
题目 给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 示例 1:输入: 123 输出: 321 示例 2:输入: -123 输出: -321 示例 3:输入: 120 输出: 21 注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。解题思路 1.现...原创 2018-06-09 18:24:02 · 796 阅读 · 0 评论 -
LeetCode 回文数(Palindrome Number)
题目 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因...原创 2018-06-09 18:38:32 · 382 阅读 · 0 评论 -
LeetCode 最长公共前缀(Longest Common Prefix)
题目 编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。 示例 示例 1: 输入: [“flower”,”flow”,”flight”] 输出: “fl” 示例 2: 输入: [“dog”,”racecar”,”car”] 输出: “” 解释: 输入不存在公共前缀。思路 简单粗暴的方法,第一个字符串从第一个字符依次和后面字符串对应字符...原创 2018-06-09 19:15:23 · 142 阅读 · 0 评论 -
LeetCode 有效的括号(Valid Parentheses)
题目 给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 示例 1: 输入: “()” 输出: true 示例 2: 输入: “()[]{}” 输出: true 示例 3: 输入: “(]” 输出:...原创 2018-06-09 21:49:10 · 127 阅读 · 0 评论