![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Leetcode刷题系列
Leetcode刷题系列
华尔街的幻觉
不积跬步 无以至千里
展开
-
(python版) Leetcode-189. 旋转数组
01 题目给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4].解释:向右旋转 1 步:[7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100].解释:向右旋转 1 步: [99,-1原创 2020-09-17 01:07:41 · 171 阅读 · 0 评论 -
(python版) Leetcode-485. 最大连续1的个数
01 题目给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。输入数组的长度是正整数,且不超过 10,000。链接:https://leetcode-cn.com/problems/max-consecutive-ones02 解析&代码一:一次遍历当我们遇到 1 时,count 加一。当我们遇到 0 时:将 cou原创 2020-09-16 22:09:17 · 495 阅读 · 0 评论 -
(python版) Leetcode-566. 重塑矩阵
01 题目在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。链接:https://leetcode-cn.com/problems/reshape-the-matrix02 解析最直接的原创 2020-09-16 21:33:41 · 352 阅读 · 0 评论 -
(python版) Leetcode-287. 寻找重复数
01 题目链接 https://leetcode-cn.com/problems/find-the-duplicate-number/给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。原创 2020-09-13 01:06:03 · 282 阅读 · 0 评论 -
(python版) Leetcode-66.加一
01 题目链接:https://leetcode-cn.com/problems/plus-one给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。02 解析一次原创 2020-09-12 01:14:41 · 117 阅读 · 0 评论 -
(python版) Leetcode-645. 错误的集合
01 题目链接:https://leetcode-cn.com/problems/set-mismatch集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入: nums = [1,2,2,4]输出: [2,3]注意:给定数组的长度范原创 2020-09-12 01:03:18 · 235 阅读 · 0 评论 -
(python版) Leetcode-283. 移动零
01 题目链接 https://leetcode-cn.com/problems/move-zeroes/description/给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。02 解析【双指针解法】我们创建两个指针i和j,第一次遍历的时候指针j用来记录当前有多少非0元素。即遍历的时候每遇到一个非0元素原创 2020-09-11 22:05:50 · 545 阅读 · 0 评论 -
(python版) Leetcode-349.两个数组的交集
01 题目链接:https://leetcode-cn.com/problems/intersection-of-two-arrays给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]02 解析我用(python版) Leetcode-350.两个数组的交集 II的一行Counter竟然报错?原创 2020-09-11 21:40:05 · 125 阅读 · 0 评论 -
(python版) Leetcode-160.相交链表
01 题目编写一个程序,找到两个单链表相交的起始节点。02 解析第一次看到这题目就想了挺久,困惑在两个地方:1.示例1的相交节点为什么不是12.为什么大部分解题思路中都说要走a+c+b,和b+c+a直到看到下面这个非常直观的动图 和 题解思路~【这道题其实跟 141.环形链表 有点类似,环形链表中题目已经明确说链表是有环的。而这道题只是说了两个链表有相交的节点,那么我们可以改变一下链表的结构,人为的将这个链表变成环形。我们可以将a和b两个链表强行串联起来,变成一个8字的形状。原结构原创 2020-09-01 21:39:54 · 171 阅读 · 0 评论 -
(python版) Leetcode-21.合并两个有序链表 merge-two-sorted-lists
01 题目链接:https://leetcode-cn.com/problems/merge-two-sorted-lists将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->402 解析&代码1【递归法】终止条件:当两个链表都为空时,表示我们对链表已合并完成。如何递归:我们判断 l1 和 l2 头结点原创 2020-08-31 00:16:14 · 245 阅读 · 0 评论 -
(python版) Leetcode-2.两数相加
01 题目链接:https://leetcode-cn.com/problems/add-two-numbers给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&g原创 2020-08-30 22:36:37 · 160 阅读 · 0 评论 -
如何刷Leetcode?【从400到700到900的全网总结篇】
本篇汇总了以下四篇如何刷leetcode的方法如何两个月刷400道leetcode刷完700多题后的首次总结:LeetCode应该怎么刷?写于LeetCode刷完900题之际的感想LeetCode小白如何上手刷题?前言随着互联网寒潮的到来, 越来越多的互联网公司提高了面试的难度,其中之一就是加大了面试当中手撕算法题的比例。这里说的算法题不是深度学习,机器学习这类的算法,而是排序,广度优先,动态规划这类既考核数据结构也考核编程能力的题目。刷题的网址非常的多,其中以leetcode是最为出名的。在原创 2020-08-30 15:08:24 · 1396 阅读 · 0 评论 -
(python版) Leetcode-350.两个数组的交集 II
01 题目链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]02 代码&解析(1行解法-Counter)from collections import原创 2020-08-28 14:57:23 · 215 阅读 · 0 评论 -
(python版) Leetcode-15.三数之和
01 题目:三数之和链接:https://leetcode-cn.com/problems/3sum给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2原创 2020-08-24 20:23:16 · 252 阅读 · 0 评论 -
(python版) Leetcode-1.两数之和
01 题目:两数之和链接:https://leetcode-cn.com/problems/two-sum给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]02 解析暴力法:双循环原创 2020-08-24 16:21:37 · 201 阅读 · 0 评论 -
(python版)Leetcode-11.盛最多水的容器
01 题目链接:https://leetcode-cn.com/problems/container-with-most-water给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容原创 2020-08-23 19:10:16 · 187 阅读 · 0 评论