![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
Movle
this is the way
展开
-
[LeetCode-剑指Offer-面试题03]数组中重复的数字
一.题目: 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 二.题解: 1.第一种方法:遍历数组 (1)解题思路: 利用for循环遍历数组,将数组n...原创 2020-04-11 17:30:38 · 112 阅读 · 0 评论 -
[LeetCode-1]两数之和
一.题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 ...原创 2020-04-09 17:09:21 · 64 阅读 · 0 评论 -
[LeetCode-面试01.01]判断字符是否唯一
一.题目描述: 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 示例 1: 输入: s = "leetcode" 输出: false 示例 2: 输入: s = "abc" 输出: true 限制: 0 <= len(s) <= 100 如果不使用额外的数据结构,会很加分 二.题解 1.第一种方法 (1)解题思路 第一次遍历字符串所有字母; 第二次遍历从第一次遍历...原创 2020-04-05 09:08:51 · 136 阅读 · 0 评论 -
[LeetCode-面试01.02]判定是否互为字符重排
一.题目描述 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 示例 1: 输入: s1 = "abc", s2 = "bca" 输出: true 示例 2: 输入: s1 = "abc", s2 = "bad" 输出: false 说明: 0 <= len(s1) <= 100 0 <= len(s2) <=...原创 2020-04-05 19:38:07 · 98 阅读 · 0 评论 -
[LeetCode-面试01.03]URL化
一.题目描述: URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。) 示例1: 输入:"Mr John Smith ", 13 输出:"Mr%20John%20Smith" 示例2: 输入:" ", 5 输出:"%2...原创 2020-04-06 11:26:05 · 285 阅读 · 2 评论 -
[LeetCode-面试01.04]回文排列
一.题目: 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。 回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。 回文串不一定是字典当中的单词。 示例1: 输入:"tactcoa" 输出:true(排列有"tacocat"、"atcocta",等等) 二.题解: 1.第一种题解: (1)解题思路: 每个字符出现的次数为偶数, 或者有且只有一个字符出现的次数为奇数时...原创 2020-04-07 20:52:06 · 148 阅读 · 0 评论 -
[LeetCode-面试01.05]一次编辑
一.题目: 字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。 示例 1: 输入: first = "pale" second = "ple" 输出: True 示例 2: 输入: first = "pales" second = "pal" 输出: False 二.题解 1.第一种解法: (1)解题思...原创 2020-04-08 21:29:05 · 310 阅读 · 0 评论 -
[LeetCode-面试01.06]字符串压缩
一.题目: 字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z) 示例1: 输入:“aabcccccaaa” 输出:“a2b1c5a3” 示例2: 输入:“abbccd” 输出:“abbccd” 解释:“abb...原创 2020-04-09 17:59:00 · 147 阅读 · 0 评论 -
[LeetCode-面试01.07]旋转矩阵
一.题目 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 示例 1: 给定 matrix = [[1,2,3], [4,5,6], [7,8,9]], 原地旋转输入矩阵,使其变为: [[7,4,1], [8,5,2], [9,6,3]] 示例 2: 给定 matrix = [[ 5, 1, 9...原创 2020-04-09 22:02:50 · 92 阅读 · 0 评论 -
[LeetCode-面试01.08]零矩阵
一.题目: 编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。 示例 1: 输入: [[1,1,1], [1,0,1], [1,1,1]] 输出: [[1,0,1], [0,0,0], [1,0,1]] 示例 2: 输入: [[0,1,2,0], [3,4,5,2], [1,3,1,5]] 输出: [[0,0,0,0], [0,4,5,0], [0,3,1,0]] 二题...原创 2020-04-10 09:18:19 · 172 阅读 · 0 评论 -
[LeetCode-面试01.09]字符串轮转
一.题目 字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。 示例1: 输入:s1 = “waterbottle”, s2 = “erbottlewat” 输出:True 示例2: 输入:s1 = “aa”, “aba” 输出:False 二.题解 1.第一种方法: (1)解题思路: 首先判定...原创 2020-04-10 10:50:27 · 93 阅读 · 0 评论 -
[LeetCode-面试02.01]删除单链表中的重复元素
一.题目 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] 示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2] 提示: 链表长度在[0, 20000]范围内。 链表元素在[0, 20000]范围内 二.题解 1.第一种方法:双指针法 (1)解题思路: HashSet中存入未曾出现的元素...原创 2020-04-11 12:05:27 · 137 阅读 · 0 评论 -
[LeetCode-面试02.02]返回倒数第 k 个节点
一.题目: 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 注意:本题相对原题稍作改动 示例: 输入: 1->2->3->4->5 和 k = 2 输出: 4 二.题解: 1.第一种解法 (1)解题思路: 新建指针p,指向头结点 再利用for循环,让p后移k位 再利用while循环,同时使p向后移,head指针也向后移 直到p指向null,即尾结点...原创 2020-04-11 10:45:16 · 179 阅读 · 0 评论 -
[LeetCode-面试02.03]删除中间结点
一.题目: 实现一种算法,删除单向链表中间的某个节点(除了第一个和最后一个节点,不一定是中间节点),假定你只能访问该节点。 示例: 输入:单向链表a->b->c->d->e->f中的节点c 结果:不返回任何数据,但该链表变为a->b->d->e->f 二.题解: 1.第一种解法: (1)解题思路: 把节点c的val变为节点d(node.n...原创 2020-04-11 11:40:59 · 84 阅读 · 0 评论 -
[LeetCode-面试02.04]分割链表
一.题目: 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前。如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示)。分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。 示例: 输入: head = 3->5->8->5->10->2->1, x = 5 输出: 3->1->2-...原创 2020-04-11 21:02:52 · 132 阅读 · 0 评论 -
[LeetCode-面试02.05]链表求和
一.题目: 给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 示例: 输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295 输出:2 -> 1 -> 9,即912 进阶:假设这些数位是正向存放的,请再做一遍。 示例: 输入:(...原创 2020-04-11 22:15:12 · 165 阅读 · 0 评论 -
[LeetCode-面试02.06]回文链表
一.题目: 编写一个函数,检查输入的链表是否是回文的。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 二.题解: 1.第一种解法: (1)解题思路: 首先生成新的反转head的链表newHead 然后判断两个链表是否相等即可 若相等则是回文链表,否则不是 (2)代码: /** * Definition...原创 2020-04-11 23:29:01 · 88 阅读 · 0 评论 -
[LeeCode-面试02.07]链表相交
一.题目: 给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB =...原创 2020-04-12 08:17:23 · 98 阅读 · 0 评论 -
[LeetCode-面试03.01]三合一
一.题目: 三合一。描述如何只用一个数组来实现三个栈。 你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。 构造函数会传入一个stackSize参数,代表每个栈的大小。 示例1: 输入: [“TripleInOne”, “push”, “pus...原创 2020-04-14 07:37:51 · 274 阅读 · 1 评论