
LeetCode练习
来自火星的猫
这个作者很懒,什么都没留下…
展开
-
17.电话号码的字母组合 _LeetCode 17
题目:给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例: 输入:"23" 输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。使用队列:(学习的大佬的算法,自己写的太菜了啊)class Solution { publi...原创 2020-07-04 16:22:51 · 137 阅读 · 0 评论 -
16. 最接近的三数之和 -LeetCode 16 - java
题目:给定一个包括n 个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:给定数组 nums = [-1,2,1,-4], 和 target = 1 与 target 最接近的三个数的和为 2 。(-1 + 2 + 1 = 2)标签:排序 和 双指针public class LeetCode16 { public int threeS...原创 2020-05-28 10:21:13 · 137 阅读 · 0 评论 -
15. 三数之和 -LeetCode 15-java
题目:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]自己写的太菜,这是看了大佬的思路(为什么大佬总是那么的nb?思路清晰,方法简单,代码优美简洁。啊啊啊啊好羡慕)cl...原创 2020-05-26 15:14:11 · 208 阅读 · 0 评论 -
14.最长公共前缀 -LeetCode 14 - java
题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1: 输入: ["flower","flow","flight"] 输出: "fl"示例2: 输入: ["dog","racecar","car"] 输出: ""解释: 输入不存在公共前缀。说明: 所有输入只包含小写字母a-z。思路:标签:链表1 当字符串数组长度为 0 时则公共前缀为空,直接返回2 令最长公共前缀 a...原创 2020-05-24 12:01:49 · 200 阅读 · 0 评论 -
13.罗马数字转整数-LeetCode 13-java
题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。通常情...原创 2020-05-21 11:38:11 · 254 阅读 · 0 评论 -
12. 整数转罗马数字- LeetCode 12- java
题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。...原创 2020-05-20 23:22:24 · 216 阅读 · 0 评论 -
11. 盛最多水的容器 -LeetCode 11 -java
题目:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。示例: 输入:[1,8,6,2,5,4,8,3,7] 输出:49思路:一开始两个指针一个指向开头一个指向结尾,此时容器的底是最大的,接下来随着指针向内移...原创 2020-05-19 10:35:05 · 234 阅读 · 0 评论 -
10.正则表达式匹配-LeetCode10 -java
题目:给你一个字符串s和一个字符规律p,请你来实现-个支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符'*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s 的,而不是部分字符串。说明:●s可能为空,职包含从a-z 的小写字母。●p可能为空,且只包含从a-z的小写字母,以及字符,和*。示例 1:输入: s = "aa" p = "a" 输出: fals...原创 2020-05-17 16:21:19 · 420 阅读 · 0 评论 -
9.回文数- LeetCode 9 - java
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1: 输入: 121 输出: true示例2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。...原创 2020-05-16 17:54:47 · 154 阅读 · 0 评论 -
7.整数反转-LeetCode 7-java
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1: 输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 p...原创 2020-05-16 13:20:08 · 190 阅读 · 0 评论 -
8. 字符串转换整数 (atoi)-LeetCode 8 -java
题目:请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:① 如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。② 假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。③ 该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字...原创 2020-05-16 13:16:01 · 170 阅读 · 0 评论 -
6.Z 字形变换-LeetCode6-java
题目:将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"看到一位大佬想的方法,很好理解,且十分巧妙。作者:jyd链接:...原创 2020-05-16 09:11:14 · 187 阅读 · 0 评论 -
5.最长回文子串-LeetCode5-java
题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"中心扩展算法//中心扩散法 public String longestPalindrome(String s) { if(s==null || s.length()<1) return ""; //start 和end .原创 2020-05-15 18:05:34 · 149 阅读 · 0 评论 -
4.寻找两个有序数组的中位数-LeetCode4-java
题目:给定两个大小为 m 和 n 的有序数组nums1和nums2。请找出这两个有序数组的中位数。要求算法的时间复杂度为O(log (m+n)) 。示例 1:nums1 = [1, 3] nums2 = [2]中位数是 2.0示例 2:nums1 = [1, 2] nums2 = [3, 4]中位数是 (2 + 3)/2 = 2.5合并后(有序的)再找中位数 public double findMedianS...原创 2020-05-15 11:53:15 · 157 阅读 · 0 评论 -
3. 无重复字符的最长子串- LeetCode3 - java版
题目:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"是一个子序列,...原创 2020-05-14 11:52:55 · 175 阅读 · 0 评论 -
2. 两数相加-LeetCode2-java版
题目: 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807/** * Definition for...原创 2020-05-13 18:01:57 · 149 阅读 · 0 评论 -
LeetCode练习题解 - Java版
记录一下练习的过程。1. 两数之和 :https://blog.youkuaiyun.com/qq_41043982/article/details/106094882原创 2020-05-13 12:03:08 · 256 阅读 · 0 评论 -
1. 两数之和-LeetCode1-java版
题目: 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解答1:直接遍历时间复杂度:O(n^2) public int[] twoSum(int[] ...原创 2020-05-13 11:59:36 · 164 阅读 · 0 评论