leetCode
大小瓶
这个作者很懒,什么都没留下…
展开
-
无重复字符的最长子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。(longest-substring-without-repeating-characters)示例:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。思路:窗口长度不固定,先固定窗口左端,移动右端,直到找到有重复字符的窗口,记录窗口长度;然后固定右端,移动左端,直到窗口无重复字符,记录最大长度,窗口再开始移动右端到右端在最右端且窗口无重复字符,此时最大窗口长原创 2020-06-26 18:14:43 · 99 阅读 · 0 评论 -
两数相加
题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:给一个变量表示当前数字之和,根据这个数的个原创 2020-06-06 23:21:24 · 126 阅读 · 0 评论 -
合并两个有序链表
题目描述:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路:定义新链表,比较l1,l2的值的大小,较小的接入新链表,并更新原l1或l2(删掉较小节点),新链表当前节点后移到新的最后节点代码:## @lc app=leetcode.cn id=21 lang=python3## [21] 合并两个原创 2020-05-17 01:23:25 · 75 阅读 · 0 评论 -
旋转数组
题目描述:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例:示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 示例 2: 输入: [-1,-100,3,99] 和 k = 2 输出: [3,99,-1,-100]思路: k可能大于nums的长度,所以k%=len(nums) 把后k个元素移到前面来代码:## @lc app=leetcode.cn id=189 lang=python3#原创 2020-05-17 00:41:39 · 238 阅读 · 0 评论 -
删除排序数组中的重复项
题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例:示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新原创 2020-05-16 23:58:53 · 92 阅读 · 0 评论 -
K 个一组翻转链表
题目描述:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5思路:把链表分为k个一组,每组进行翻转,不足k个时保持原顺序原创 2020-05-16 17:16:44 · 86 阅读 · 0 评论 -
移动零解法
题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]思路:使用两个指针: i --> 当前遍历的元素下标 j --> 实际不为0的元素下标if i != j and nums[i] != 0: nums[j] = nums[i] nums[i] = 0代码:## @lc app=原创 2020-05-15 14:51:22 · 165 阅读 · 1 评论 -
反转链表
题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路:head每次删去头节点newListNode每次加入头节点代码:## @lc app=leetcode.cn id=206 lang=python3## [206] 反转链表## @lc code=start# Definition for singly-linked list.#原创 2020-05-15 14:42:27 · 96 阅读 · 0 评论 -
环形链表 II
题目描述:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。思路:设链表共有 a+b 个节点其中链表头部到链表入口有 a 个节点(不计链表入口节点),链表环有 b 个节点if fast = slow : f = 2s (f每次走2个节点,s每次走1个节点) f = s + nb (f比s多走nb个节点) 可以推出 --> s = nb遇到入口节点时: 走过的节点数k为: k = a + nb --> 即原创 2020-05-15 14:35:42 · 120 阅读 · 0 评论 -
环形链表
题目描述: 给定一个链表,判断链表中是否有环。思路:这道题很像中学物理中我们经常遇到的“追击问题”,所以我们可以巧妙的使用快慢指针来模拟追击问题,只要存在环状结构,就一定可以追上。代码:## @lc app=leetcode.cn id=141 lang=python3## [141] 环形链表## @lc code=start# Definition for singly-linked list.# class ListNode:# def __init__(s原创 2020-05-15 14:32:36 · 106 阅读 · 0 评论 -
爬楼梯
题目描述: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。示例:n=3时,有3种方法思路:假设f(n)表示到达楼顶的方法数则f(n) = f(n-1) + f(n-2)即斐波那契数列代码:## @lc app=leetcode.cn id=70 lang=python3## [70] 爬楼梯## @lc code=start# 假设你正在爬楼梯。需要 n 阶你才原创 2020-05-15 14:28:53 · 115 阅读 · 0 评论 -
两两交换链表中的节点
题目描述: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例: 给定 1->2->3->4, 你应该返回 2->1->4->3思路: 对于四个节点的链表(交换a,b节点时的变化步骤): s -> a -> b -> e s -> b -> e a -> b -> e s -> b -> e a -&g原创 2020-05-15 13:39:31 · 106 阅读 · 0 评论 -
三数之和
题目描述: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c,使得 a + b + c = 0 ? 请你找出所有满足条件且不重复的三元组。 示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]思路:先给nums排序,设置3个指针: i-->从0开始向右移动 left-->从i+1开始向右移动 right-->从左后元素开始向左移动原创 2020-05-15 13:26:57 · 132 阅读 · 0 评论 -
盛最多水的容器
题目描述:给你 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思路: 使用双指针的方法,时间复杂度O(n),从左右两端向中间夹逼,移动较短的柱子(容器 的高取决于较原创 2020-05-15 13:14:08 · 189 阅读 · 1 评论 -
两数之和
这里写目录标题两数之和题目描述:示例:思路:两数之和题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]思路: 使用map存储target - num的值和原创 2020-05-15 12:59:36 · 91 阅读 · 0 评论