自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 debug合集

文章目录运行报错调试注意事项启动visdom服务器运行报错报错:_pickle.UnpicklingError: unpickling stack underflow原因:读取模型出问题调试注意事项调试时不使用多线程:设置num_workers = 0vscode工作台内调试:默认工作路径为workspace,需要在设置文件中添加参数:“cwd: /当前文件夹的工作路径/”可...

2020-03-04 15:13:18 425

原创 leetcode#209. 长度最小的子数组(中等)

题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。题目地址:https://leetcode-cn.com/problems/minimum-size-subarray-sum方法:双指针/滑动窗口第一种是每个循环计算窗口内元素之和,根据和与s的大小关系改变窗口大小。耗时久class Solution: def minSubArrayLen(self, s: int,

2020-05-24 15:35:44 131

原创 leetcode#485. 最大连续1的个数

题目描述给定一个二进制数组, 计算其中最大连续1的个数。方法一:设置计数每遇到1,计数家一,遇到0计数置零,更新结果为最大的计数。class Solution: def findMaxConsecutiveOnes(self, nums: List[int]) -> int: ans, count = 0, 0 for i in range(len(nums)): if nums[i] == 1:

2020-05-24 14:07:35 177

原创 leetcode#136.只出现一次的数字

题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?要点分析不考虑额外空间限制的条件可以有三种解法:遍历数组,用HashMap记录每个元素出现的次数;遍历HAshMap找出只出现了一次的那个。利用集合去重,因为每个其他元素都出现两次,则对集合求和*2 - 数组求和 = 出现一次的元素。遍历数组,用另一个集合记录元素,当集合中已存在该元素时删去,最后剩下的即为所求元

2020-05-23 14:02:20 138

原创 leetcode#118. 杨辉三角

题目描述给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。题目地址:https://leetcode-cn.com/problems/pascals-triangle/要点分析每一行的头和尾元素均初始化为1;中间元素由上层[i-1][j-1]+[i-1][j]构成;运用动态规划思想通过前层生成后层,构造一个ans=[ ]用来存储结果,每一层的结果append到ans中,numRows=0时不执行循环直接返回ans=[ ];每行的长度可以预先确定。class So

2020-05-22 22:58:33 134

原创 leetcode#54. 螺旋矩阵(中等)

题目描述给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。题目地址:https://leetcode-cn.com/problems/spiral-matrix/要点分析需要转变方向右两种情况,一是下一步超越矩阵边界,二是下一步到达已遍历的元素,排除掉这两种情况即可;转变方向可以通过实现方向数组,对已遍历的的元素进行标记;class Solution: def spiralOrder(self, matrix: List[Lis

2020-05-22 21:16:55 179

原创 leetcode498. 对角线遍历(中等)

给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。说明:给定矩阵中的元素总数不会超过 100000 。题目链接:https://leetcode-cn.com/problems/diagonal-traverse/方法一找对角线的规律,以自右上向左下的对角为例,元素坐标逐个[i+1][j-1];对角线方向互相交替,统一按照统一方向提取,奇数组并入结果前先进行翻转。代码实现:外层循环遍历所有对角线内层循环根

2020-05-22 19:33:07 196

原创 leetcode#66. 加一

题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。方法一:按照数组倒序,若当前位+1小于九,直接返回当前数组;大于9则当前位置零,判断高一位的情况。class Solution: def plusOne(self, digits: List[int]) -> List[int]: # 倒序向数组元素+1 # for

2020-05-22 15:57:13 69

原创 leetcode#747. 至少是其他数字两倍的最大数

题目描述在一个给定的数组nums中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。提示:nums 的长度范围在[1, 50].每个 nums[i] 的整数范围在 [0, 100].题目地址:https://leetcode-cn.com/problems/largest-number-at-least-twice-of-others/方法一:参考文档Created with Raphaël 2.2.0输入数

2020-05-22 15:15:00 104

原创 leetcode#724. 寻找数组的中心索引

题目描述给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。注意:nums 的长度范围为 [0, 10000]。任何一个 nums[i] 将会是一个范围在 [-1000, 1000]的整数。要点分析左侧和右侧元素相加时,均不包括中心索引的元素;要擅于利用数学关系:

2020-05-22 14:10:53 107

原创 leetcode#999. 可以被一步捕获的棋子数

题目描述解法一题目描述一大串乍一看十分唬人,其实就是棋盘内一个车(R)有上下左右四个可移动方向,对每个方向的卒(p)进行捕获,但在遇到象(B)或到达棋盘边缘时终止该方向的移动,求四个方向一共可以捕获到几个卒。class Solution: def numRookCaptures(self, board: List[List[str]]) -> int: # 找...

2020-03-27 17:37:19 121

原创 leetcoede#836. 矩形重叠

题目描述法一:判断不重叠的情况class Solution: def isRectangleOverlap(self, rec1: List[int], rec2: List[int]) -> bool: x1_1,y1_1,x1_2,y1_2 = rec1 x2_1,y2_1,x2_2,y2_2 = rec2 if x2_2&l...

2020-03-18 16:32:05 89

原创 leetcode#1160. 拼写单词

题目描述分别统计单词中各个字母的次数class Solution: def countCharacters(self, words: List[str], chars: str) -> int: chars_1 = list(chars[:]) chars_1.set() # chars去重 dic_char={} ...

2020-03-17 23:16:38 80

原创 leetcode#169. 多数元素

题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。解法一:count()函数class Solution: def majorityElement(self, nums: List[int]) -> int: n = len(nums)/2...

2020-03-13 17:08:21 73

原创 leetcode#1071. 字符串的最大公因子

题目描述观察最大公因数的性质若两个字符串前后拼接相等时,表示他们分别由若干个公因子拼接而成,否则不成立。且有,最大公因子长度等于两个字符串长度的最大公因数。证明可见官方题解:官方题解class Solution: def gcdOfStrings(self, str1: str, str2: str) -> str: # 判断无解 if st...

2020-03-12 12:23:48 84

原创 leetcode#1013. 将数组分成和相等的三个部分

题目描述解法:双指针+一点技巧class Solution: def canThreePartsEqualSum(self, A: List[int]) -> bool: sum = 0 if A == []: return 0 for a in A: sum += a ...

2020-03-11 13:24:37 112

原创 leetcode#543. 二叉树的直径

题目描述给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。递归max(左子树直径, 右子树直径, 左子树+右子树)# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = ...

2020-03-10 22:39:10 65

原创 leetcode#121. 买卖股票的最佳时机

题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。解:动态规划class Solution: def maxProfit(self, prices: List[int]) -> int: if prices==...

2020-03-09 22:16:46 74

原创 leetcode#322. 零钱兑换(中等)

题目描述零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。解一:动态规划class Solution: def coinChange(self, coins: List[int], amount: int) -> int: # 动态规...

2020-03-08 19:06:55 82

原创 剑指offer #59 - I. 滑动窗口的最大值

题目描述给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。解一:列表max()直接用python中求列表最大值的函数max(),注意考虑输入数组为空的边界情况。class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: ans =...

2020-03-07 23:47:27 73

原创 剑指offer #57 - II 和为s的连续正数序列

题目来源输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。双指针(滑动窗口)法与第一问中类似的做法,只是该问的指针起始相邻。当其间元素之和等于target,保留至结果列表中;小于target,右移右指针(做加法);大于时,右移左指针(做减法)。结束条件:左指针 > 右指针...

2020-03-06 22:39:41 69

原创 剑指offer #57 和为s的两个数字

题目描述输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。查询余数 – 超时对列表中元素根据target计算余数,判断余数是否在例表中,有则返回。但时间复杂度高为O(n^2),当列表很大时,超出时间限制。class Solution: def twoSum(self, nums: List[int], t...

2020-03-06 16:43:56 91

原创 leetcode #1103 分糖果 II

题目描述题解暴力求解:遍历数组遍历数组分糖果,直到糖果全部分完,注意处理最后一轮糖果不够的分配。class Solution: def distributeCandies(self, candies: int, num_people: int) -> List[int]: n = num_people ans = [0]*n # 初始...

2020-03-05 23:07:03 88

原创 leetcode#994 腐烂的橘子

题目描述在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。题解广度优先遍历(BFS),初始状态的烂橘子当作根节点,依次处理每一个根节点邻居的新鲜橘子,使其腐烂并记为...

2020-03-05 14:25:26 93

原创 合并排序的数组

题目描述给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。初始化 A 和 B 的元素数量分别为 m 和 n。直接调用python函数class Solution: def merge(self, A: List[int], m: int, B: List[int], n: int) -> None: ...

2020-03-03 23:36:16 67

原创 剑指offer #10- I 斐波那契数列

题目描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:100000000...

2020-02-29 23:02:25 66

原创 剑指offer #09 用两个栈实现队列

题目描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )题解两个栈,A用来存储队列,B为空。appendTail直接在A往栈顶添加元素,deleteHead时,将A元素自顶向底压入B中,则B顶为队列头,直接pop则删除队...

2020-02-29 20:50:52 58

原创 剑指offer #07 重建二叉树(中等)

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。解题用递归的方法,通过前序遍历确定根节点的值,在中序遍历中确定其位置从而划分左右子节点,分别用同样的方法构建左子树右子树,递归直至叶节点。其中为了加快在中序遍历中搜索根节点的位置,构建字典存储中序遍历。# Definition for a binary tree node....

2020-02-29 19:02:11 69

原创 剑指offer #06 从尾到头打印链表

题目描述输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。解法一:递归# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: ...

2020-02-28 20:22:17 93

原创 剑指offer #05 替换空格

题目描述请实现一个函数,把字符串 s 中的每个空格替换成"%20"。题解在 Python 和 Java 等语言中,字符串都被设计成不可变的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。思路一replace函数思路二创建新字符串,遍历输入字符串,遇到空格在新字符串后加‘%20’。但由于Python中str是不可变类型,每加一位会生成新的字符串,浪费内存。cla...

2020-02-27 22:42:38 103

原创 剑指offer #04 二维数组中的查找

题目描述在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。python def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool: i = ...

2020-02-27 22:16:14 97

原创 leetcode 13# 罗马数字转整数(Python)

CONTENT题目分析Summary题目https://leetcode-cn.com/problems/roman-to-integer/description/分析题目看起来很长,但罗马计数的规则其实很简单,除了特殊表示的六个数,一般都由基础字符逐个相加即可,可以联想货币理解。所以首先将特殊情况“翻译”常规表达形式,再统一处理。code 40msclass Solution: ...

2019-09-20 22:26:10 66

原创 leetcode 9# 回文数(python)

CONTENT题目分析思路1思路2Summary题目判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。https://leetcode-cn.com/problems/palindrome-number/description/进阶:你能不将整数转为字符串来解决这个问题吗?分析思路1首先排除负数情况对正数:整数转成字符串,翻转字符串,判断是否...

2019-09-19 21:50:32 77

原创 python报错简易指南

1. TabError: inconsistent use of tabs and spaces in indentationtab和空格键混用,导致缩进混乱,Python编译出错。

2019-09-03 16:52:45 140

原创 python关键字with的主要用法(未完)

文章目录基本表达式文件操作异常处理上下文管理器对with-as的支持(待写)使用生成器装饰器(待写)参考基本表达式with EXPR as VAR #其中EXPR为任意表达式,as VAR部分可无 BLOCKwith所求值的语句必须有两个方法,分别是:__enter__()和__exit__()一般执行过程:计算EXPR,获取一个上下文管理器调用上下文管理器的__enter_...

2019-09-03 16:48:19 135

原创 leetcode 1# 两数之和(python)

CONTENT题目注意点思路Summary题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。https://leetcode-cn.com/problems/two-sum/description/注意点思路Summary关于...

2019-09-03 11:44:51 65

原创 Python3类定义中的注释

做leetcode的时候注意到python3的函数定义和2不太一样。举例:python2class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int]...

2019-08-31 15:17:01 995

原创 Leetcode 190# Reverse Bits (Python)

CONTENTProblemNoteidea#1 字符串翻转idea#2 位移法SummaryProblemReverse bits of a given 32 bits unsigned integer.Follow up:If this function is called many times, how would you optimize it?Noteidea#1 字符串翻转...

2019-08-29 16:17:05 144

原创 Leetcode 7# Reverse Integer (Python)

CONTENTProblemNoteidea#1idea#2SummaryProblemGiven a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123Output: 321Example 2:Input: -123Output: -321Example 3:Input: 120O...

2019-08-28 16:04:57 73

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除