
LeetCode刷题
fs站在远方看童年
一起努力,共同进步。
展开
-
LeetCode 203. 移除链表元素
题目:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解题思路:此题删除链表中元素是很简单的,只需要让准备删除的节点之前一个节点的下一跳指向待删节点之后一个节点即可。该题的问题是,题目要求我们要返回新链表中的头结点,如...原创 2019-12-25 11:40:12 · 94 阅读 · 0 评论 -
LeetCode 19. 删除链表的倒数第N个节点
题目:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?解题思路:如图所示,首先,你假定有8个数,要删倒数第三个...原创 2019-12-24 21:53:04 · 101 阅读 · 0 评论 -
LeetCode 206. 反转链表
题目:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?问题:递归实现的时候,每递归一次就出现一个head是什么意思解题思路:代码实现(java):class Solution {...原创 2019-12-24 21:08:21 · 121 阅读 · 0 评论 -
LeetCode 328. 奇偶链表
题目:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5-&...原创 2019-12-24 09:37:14 · 282 阅读 · 0 评论 -
LeetCode 905:按奇偶排序数组
题目:给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示:1 <= A.length <= 50000 <= A[i] <=...原创 2019-12-15 20:12:57 · 132 阅读 · 1 评论 -
LeetCode 122:买卖股票的最佳时机 II
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, ...原创 2019-12-04 12:36:33 · 149 阅读 · 0 评论 -
LeetCode 283:移动零
题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。解题思路:设置一个count,表示非0数的个数,循环遍历数组,如果不是0,将非0值移动到第count位置,然后count + 1。如果n...原创 2019-12-02 20:51:40 · 101 阅读 · 0 评论 -
LeetCode 217:存在重复元素
题目:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true解题思路:我们需要做的是判断一...原创 2019-12-02 20:50:17 · 115 阅读 · 0 评论 -
LeetCode 219:存在重复元素II
题目:给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums = [1...原创 2019-12-02 19:30:19 · 105 阅读 · 0 评论 -
LeetCode 1089:复写零(超详解)
题目:给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。示例 1:输入:[1,0,2,3,0,4,5,0]输出:null解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]示例 2:输入:[1...原创 2019-11-30 23:51:58 · 1181 阅读 · 1 评论 -
LeetCode 169:多数元素
题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2解题思路:首先题中已经说了假设数组非空且给定的数组总是存在多数元素。也就是说我们需要做的仅仅只有寻找...原创 2019-11-27 12:59:14 · 119 阅读 · 0 评论 -
LeetCode 747:至少是其他数字两倍的最大数
题目:在一个给定的数组nums中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。示例 1:输入: nums = [3, 6, 1, 0]输出: 1解释: 6是最大的整数, 对于数组中的其他整数,6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1.示例 2:输入: nums = [1,...原创 2019-11-29 10:42:00 · 183 阅读 · 1 评论 -
LeetCode 136:只出现一次的数字
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4题目分析:看到这道题,第一时间想到的是排序。异或讲解:交换律:a ^ b ^ c <=...原创 2019-11-26 15:12:38 · 113 阅读 · 0 评论 -
LeetCode 66:加一
题目:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321...原创 2019-11-26 11:11:25 · 165 阅读 · 0 评论 -
Leetcode 724: 寻找数组的中心索引
题目:给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出: 3解释:索引3 (nums...原创 2019-11-13 20:39:22 · 152 阅读 · 0 评论