
学习笔记
_Mia_
在读研究僧
展开
-
leetcode笔记 203移除链表元素 python Java
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]输入:head = [], val = 1输出:[]输入:head = [7,7,7,7], val = 7输出:[]python解法一:# Definition for singly-linked list.# class原创 2022-05-10 15:56:35 · 238 阅读 · 1 评论 -
leetcode做题笔记 76最小覆盖子串 python
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 "" 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。这道题不会做,看了官方答案还思考了好久class Solution: def minWindow(self, s: str, t: str) -> str: ne.原创 2022-04-02 17:29:18 · 284 阅读 · 0 评论 -
leetcode做题笔记 54螺旋矩阵 python
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]延续 59螺旋矩阵II 的思路,依次按照螺旋的顺序添加数字到空列表array中需要注意的是,与59不同,该输入列表非n*n的,所以需要计算列表的行数和列数,列表的行直接用len()可得出,列数为len(matric[0]),因为此列表的维度为2。class ..原创 2022-04-02 17:26:52 · 220 阅读 · 0 评论 -
leetcode做题笔记 59螺旋矩阵II python
给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。示例输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]这道题想了很久都没有思路,最后还是参考了官方答案看了题解才写出来:class Solution: def generateMatrix(self, n: int) -> List[List[int]]: left, right, top, bo...原创 2022-04-02 16:04:42 · 912 阅读 · 0 评论 -
leetcode做题笔记 904水果成篮 python
你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果种类 。你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:你只有两个篮子,并且每个篮子只能装单一类型的水果。每个篮子能够装的水果总量没有限制。你可以选择任意一棵树开始采摘,你必须从每棵树(包括开始采摘的树)上恰好摘一个水果 。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘。一旦你走到某原创 2022-04-01 15:24:10 · 2042 阅读 · 2 评论 -
leetcode做题笔记 209长度最小的子数组 python
给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。思路一:用左右两个指针滑动,先固定左指针移动右指针,每次移动右指针sum加上右指针所在的值,当sum >= target 记下此时数组长度为 右指针索引 - 左指针索引 + 1 , 此时再向后移动右指针数组长度必然大于当前长度,故移动原创 2022-03-31 11:36:53 · 1059 阅读 · 0 评论 -
leetcode做题笔记 977有序数组的平方 python
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。思路一:直接调用内置函数就是简中简class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: for i in range(len(nums)): nums[i] = nums[i] **2 nums = sorted(num原创 2022-03-31 11:09:49 · 150 阅读 · 0 评论 -
leetcode做题笔记 283移动零 python
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。思路:这道题比较简单,设置指针若索引所在的值为零,则删除并计数,最后在列表末尾添加计数个数的零即可class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify num原创 2022-03-30 20:38:32 · 396 阅读 · 0 评论 -
leetcode做题笔记 26删除有序数组中的重复项 python
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。思路:采用原创 2022-03-30 20:35:21 · 351 阅读 · 0 评论 -
leetcode笔记 27移除元素 python
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。思路一:想用暴力美学直接循环,但是超时了 def removeElement(self, nums: List[int], val: int) -> int: #暴力美学 count =原创 2022-03-30 19:44:54 · 358 阅读 · 0 评论 -
leetcode做题笔记 367有效的完全平方数 python
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。思路:类似69题求x的平方根,只需在最后添加一个判断,所求的值的平方是否为所给定的值即可class Solution: def isPerfectSquare(self, num: int) -> bool: l, r, ans = 0, num, -1 if num <原创 2022-03-30 19:39:38 · 169 阅读 · 0 评论 -
leetcode笔记 69x的平方根 python
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。思路:用二分查找的方法,比较中间值mid的平方和x之间的关系,逐步逼近class Solution: def mySqrt(self, x: int) -> int: l, r, ans = 0, x, -1 while l原创 2022-03-30 19:22:17 · 187 阅读 · 0 评论 -
leetcode做题笔记 34 在排序数组中查找元素的第一个和最后一个位置 python
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。用非寻找左右边界实现思路:若数组本身为空自然不存在目标值,先判断边界条件。设置一个空列表temp,若数组中含该目标值则添加进temp中若temp空返回[-1,-1] 若temp不为空 若temp长度为1,即temp中仅含一个元素,则返回的上下界均为该元素的位置 若temp长度不为空,说明数组中含有多个目原创 2022-03-30 18:00:49 · 125 阅读 · 0 评论 -
leetcode笔记 35搜索插入位置 python
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。class Solution: def searchInsert(self, nums: List[int], target: int) -> int: n = len(nums) - 1 for i in nums : if i >= target :原创 2022-03-30 17:48:09 · 391 阅读 · 0 评论 -
leetcode笔记 704二分查找 python
给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。设置左右两个指针及中间值,若目标值比中间值大则移动左指针,若目标值比中间值小移动右指针class Solution: def search(self, nums: List[int], target: int) -> int: left = 0 right = len(nums)...原创 2022-03-30 17:45:44 · 500 阅读 · 0 评论 -
leetcode做题笔记 python
按照代码随想录的顺序用python刷leetcode,此前没做过任何代码题,记录一下自己的学习过程,冲!数组二分查找704 二分查找35 搜索插入位置34 在排序数组中查找元素的第一个和最后一个位置69 x的平方根367 有效的完全平方数移除元素27 移除元素26 删除排序数组中的重复项283 移动零844比较含退格的字符串...原创 2022-03-30 17:40:38 · 795 阅读 · 0 评论 -
leetcode笔记 844比较含退格的字符串 python
python实现leetcode 844比较含退格的字符串原创 2022-03-30 17:33:41 · 514 阅读 · 0 评论