![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode题库
作者刷过的算法题,包含作者的思路以及官方的解法
肆月拾忆.Allen
这个作者很懒,什么都没留下…
展开
-
Leetcode算法题(十六)---------电话号码的字母组合
Leetcode算法题(十六)---------电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].一.我的解法 我的初始解法是分别把每个数字与其对应的字母放入一个map键值对集合中,然后遍历输入的字符串,分别截取出每个数字,找对与其对应的字母,然后进行拼原创 2020-09-03 16:25:19 · 148 阅读 · 0 评论 -
Leetcode算法题(十五)---------三数之和
Leetcode算法题(十五)---------三数之和题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]一.我的解法第一次拿到题目,想法是直接判断三个数相加是否等于0,但是这样做是采用三层循环,时间复杂度为n^原创 2020-08-14 16:10:06 · 145 阅读 · 0 评论 -
Leetcode算法题(十四)---------两数相加
Leetcode算法题(十四)---------两数相加题目:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807一.我的解法第一次看到题目时,首先想到的解法是分别把链表中的数逆原创 2020-08-06 10:04:37 · 220 阅读 · 0 评论 -
Leetcode算法题(十三)---------爬楼梯
Leetcode算法题(十三)---------爬楼梯题目简述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?n是正整数示例:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶一.我的解法分析:一共有n个台阶,一次可以走一原创 2020-08-03 19:08:13 · 256 阅读 · 0 评论 -
实现手机归属地查询页面
实现手机归属地查询页面看图!!!页面的实现:使用Ajax异步请求向服务器发送请求,请求手机号归属地查询,然后动态生成列表,显示手机号码段,卡号归属地,卡的类型等信息,代码如下:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/jav原创 2020-07-31 09:50:45 · 905 阅读 · 0 评论 -
Leetcode算法题(十二)---------搜索插入位置
Leetcode算法题(十二)---------搜索插入位置题目:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例: 输入: [1,3,5,6], 5 输出: 2 输入: [1,3,5,6], 2 输出: 1 输入: [1,3,5,6], 7 输出: 4 输入: [1,3,5,6], 0 输出: 0一.我的解法public class MyTest12 {原创 2020-07-29 18:07:54 · 119 阅读 · 0 评论 -
Leetcode算法题(十一)---------实现 strStr()
Leetcode算法题(十一)---------实现 strStr()题目:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例: 输入: haystack = "hello", needle = "ll" 输出: 2 输入: haystack = "aaaaa", needle = "bba" 输出: -1一.我的解法public class原创 2020-07-29 17:58:37 · 305 阅读 · 0 评论 -
Leetcode算法题(十)---------移除元素
Leetcode算法题(十)---------移除元素题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。给定 n原创 2020-07-29 17:43:48 · 123 阅读 · 0 评论 -
Leetcode算法题(九)---------删除排序数组中的重复项
Leetcode算法题(九)---------删除排序数组中的重复项题目:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素给定 nums = [0,0,1,1,1,2,2,3,3原创 2020-07-29 17:33:45 · 96 阅读 · 0 评论 -
Leetcode算法题(八)---------合并两个有序列表
Leetcode算法题(八)---------合并两个有序列表题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4一.我的解法public class MyTest8 { public static void main(String[] args) { //合并两个有序链表原创 2020-07-29 17:25:33 · 385 阅读 · 0 评论 -
Leetcode算法题(七)---------有效括号
Leetcode算法题(七)---------有效括号题目:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例: 输入: "()" 输出: true 输入: "()[]{}" 输出: true 输入: "(]" 输出: false 输入: "([)]" 输出: false 输入:原创 2020-07-29 17:12:40 · 110 阅读 · 0 评论 -
Leetcode算法题(六)---------最长公共前缀
Leetcode算法题(六)---------最长公共前缀题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例:输入: ["flower","flow","flight"]输出: "fl"输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。一.我的解法public class MyTest6 { public static void main(String[] args) {原创 2020-07-29 16:59:39 · 170 阅读 · 0 评论 -
Leetcode算法题(五)---------罗马数字转整数
Leetcode算法题(五)---------罗马数字转整数题目:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。原创 2020-07-29 16:37:45 · 119 阅读 · 0 评论 -
Leetcode算法题(四)---------回文数
Leetcode算法题(四)---------回文数题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数示例:输入: 121输出: true输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。一.我的解法public class MyTest2 { public stat原创 2020-07-29 16:27:02 · 438 阅读 · 1 评论 -
Leetcode算法题(三)---------整数反转
Leetcode算法题(三)---------整数反转题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例:输入: 123输出: 321输入: -123输出: -321输入: 120输出: 21一.我的解法public class MyTest4 { public static void main(String[] args) { //整数取反 Solution6 solution6 = new Solutio原创 2020-07-29 16:16:46 · 136 阅读 · 0 评论 -
Leetcode算法题(二)---------无重复字符的最长子串
Leetcode算法题(二)---------无重复字符的最长子串题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。一.我的解法public class MyTest3 { public static void main(String[] args)原创 2020-07-29 15:48:43 · 150 阅读 · 0 评论 -
Leetcode算法题(一)---------两数之和
Leetcode算法题(一)---------两数之和题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]一.我的解法:思路:采用选择排序法的思想,从第一个数开始,与后面的每一原创 2020-07-29 15:38:53 · 207 阅读 · 0 评论