自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指offer详解python实现

面试题3:二维数组的查找Q:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。A1:遍历整个二位数组(时间复杂度O(n2))A2:首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数字,剔除这个数字所在的列;如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说如果要查找的数字不在数组的右上角,则每一次都在数组的查找范围中剔除一行或者一列,这

2021-02-05 16:11:20 1020 1

原创 0319leetcode刷题3道python

49题目描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:解答:class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: res = [] dic = {} for s in strs: keys = "".join(sorted(s)) if

2021-03-19 10:24:43 137

原创 0318leetcode刷题3道python

92题目描述:给你单链表的头节点 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。示例:解答:# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.ne

2021-03-18 14:24:18 121

原创 0317leetcode刷题3道

102题目描述:给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:解答:# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = righ

2021-03-17 10:56:00 155 1

原创 0316leetcode刷题5道python

51题目描述:n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:解答:class Solution: def solveNQueens(self, n: int) -> List[List[str]]: def DFS(queens, xy_

2021-03-16 09:00:32 145

原创 0315leetcode刷题5道python

54题目描述:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例:解答:class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: #将已经走过的地方置0,然后拐弯的时候判断一下是不是已经走过了,如果走过了就计算一下新的方向 r, i, j, di, dj = [], 0, 0, 0, 1 i

2021-03-15 09:04:26 140 1

原创 0314leetcode刷题5道python

101题目描述:给定一个二叉树,检查它是否是镜像对称的。示例:解答:# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def

2021-03-14 09:14:47 106

原创 0313leetcode刷题5道python

164题目描述:给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例:解答:class Solution: def maximumGap(self, nums: List[int]) -> int: ''' 设置n+1个桶是为了保证间距最大的两个数被分到不同的桶中 因为最大间距 x >= (max_val - min_val) / (n-1) 而使用n+1个

2021-03-13 09:13:56 273 1

原创 0312leetcode刷题5道python

48题目描述:给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例:解答:class Solution: def rotate(self, matrix: List[List[int]]) -> None: """ Do not return anything, modify matrix in-place

2021-03-12 08:25:02 254

原创 0311leetcode刷题5道python

155题目描述:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:解答:class MinStack: def __init__(self): """ initialize your data structure here. """

2021-03-11 08:43:51 142 1

原创 0310leetcode刷题5道python

442题目描述:给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:解答:class Solution: def findDuplicates(self, nums: List[int]) -> List[int]: nums = sorted(nums) i = 0 try:

2021-03-10 11:00:58 273

原创 0309leetcode刷题5道python

283题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:解答:class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ for i in range(nums.count

2021-03-09 08:51:19 201

原创 0308leetcode刷题5道python

82题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。示例:解答:h = ListNode(-1) h.next = head pre = h cur = head while cur != None: duplicate = False while cur.next != None and cur.val == cur.

2021-03-08 08:25:52 164 1

原创 0307leetcode刷题5道python

12题目描述:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V +

2021-03-07 09:07:18 207 1

原创 0306leetcode刷题5道python

50题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。示例:解答:class Solution: def myPow(self, x: float, n: int) -> float: ''' #递归 def cal_pow(x, n): if n == 0: return 1.0 if n % 2 == 0:

2021-03-06 08:52:43 219

原创 0305leetcode刷题5道python

222题目描述:给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。示例:解答:# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right

2021-03-05 09:06:36 379 1

原创 0304leetcode刷题5道python

143题目描述:给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:解答:# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.nex

2021-03-04 09:18:08 233 1

原创 0303leetcode刷题5道python

36题目描述:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例:解答:class Solution: def isValidSudoku(self, board: List[List[str]]) -> bool

2021-03-03 09:41:54 234

原创 0302leetcode刷题5道python

304题目描述:给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2)。上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),该子矩形内元素的总和为 8。示例:解答:import numpy as npclass NumMatrix: def __init__(self, matrix: List[List[int]]): se

2021-03-02 08:54:53 231

原创 0301leetcode刷题5道python

124题目描述;路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。示例:解答:# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right

2021-03-01 09:01:04 324 3

原创 0228leetcode刷题5道python

200题目描述:给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例:解答:class Solution: def numIslands(self, grid: List[List[str]]) -> int: def dfs(i,j): if grid[i][j]=='1':

2021-02-28 09:31:48 210

原创 0227leetcode刷题5道python

133题目描述:给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node {public int val;public List neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示。邻接列表 是用于表示有限图的无序列表的集合

2021-02-27 09:39:53 230

原创 0226leetcode刷题5道python

145题目描述:给定一个二叉树,返回它的后序遍历。示例:解答:# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def pos

2021-02-26 09:04:27 395 1

原创 EXCEL数据分析(一)

函数统计分析函数、文本处理函数、数值运算函数、逻辑判断函数、日期计算函数、匹配查找函数。统计分析函数count、counta、countblack、countif、countifs、sum、sumif、average、averageif、averageifs、max、dmax、min、dmin、large、small、rank、sumproduct①count函数计算区域中包含数字的单元格的个数。=COUNT(G2:G9)②counta函数计算区域中非空单元格的个数。=COUNTA(D

2021-02-25 16:23:21 694

原创 0225leetcode刷题5道python

201题目描述:给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。示例:解答:class Solution: def rangeBitwiseAnd(self, m: int, n: int) -> int: ''' 0 与谁与都为 0 因为 只要有一个0,那么无论有多少个 1都是 0 比如:从 5到 7

2021-02-25 10:28:23 332

原创 0224leetcode刷题5道python

378题目描述:给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。示例:解答:class Solution: def kthSmallest(self, matrix: List[List[int]], k: int) -> int: li=[] for i in matrix: li+=i

2021-02-24 09:08:21 248

原创 0223leetcode刷题5道python

125题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例:解答:class Solution: def isPalindrome(self, s: str) -> bool: ''' #filter函数,过滤字符串 isalnum保留数字字母 s=''.join(filter(str.isalnum,s)).lower() r

2021-02-23 09:03:47 306 2

原创 0222leetcode刷题5道python

766题目描述:给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵,返回 true ;否则,返回 false 。如果矩阵上每一条由左上到右下的对角线上的元素都相同,那么这个矩阵是 托普利茨矩阵 。示例:解答:class Solution: def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool: #只需判断:前行中除最后一个元素外剩余的元素完全等于后行中除第一个元素外剩余的元素。

2021-02-22 09:03:40 308 1

原创 0221leetcode刷题5道python

141题目描述:给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例:解答:# Definition for singly-linked list.#

2021-02-21 09:46:34 307 1

原创 0220leetcode刷题5道python

18题目描述:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:解答:class Solution: def fourSum(self, nums: List[int], target: int) -> List[List[int]]: nums=so

2021-02-20 08:37:17 252

原创 0219leetcode刷题5道python

24题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:解答:# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def s

2021-02-19 08:40:55 264

原创 0218leetcode刷题5道python

832题目描述:给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例:解答:class Solution: def flipAndInvertImage(self, A: List[List[int]]) ->

2021-02-18 14:35:57 513 2

原创 0217leetcode刷题5道python

120题目描述:给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。示例:解答:class Solution: def minimumTotal(self, triangle: List[List[int]]) -> int:

2021-02-17 09:17:03 335 1

原创 0216leetcode刷题python5道

38题目描述:给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:111211211111221第一项是数字 1描述前一项,这个数是 1 即 “ 一 个 1 ”,记作

2021-02-16 09:11:37 302 3

原创 0215leetcode刷题5道python

239题目描述:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例:解答:class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: win, ret = [], [] for i, v in enumerate

2021-02-15 09:00:12 376 2

原创 0214leetcode刷题5道

40题目描述:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例:解答:class Solution: def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]

2021-02-14 21:36:18 318

原创 0213leetcode刷题5道python

224题目描述:实现一个基本的计算器来计算一个简单的字符串表达式 s 的值。示例:解答:class Solution: def calculate(self, s: str) -> int: #将“(”前的和加进stack中,将“)”前的数从stack中取出和前面的和相加 stack = [] operator = 1 res = 0 num = 0 for i in range(len

2021-02-13 20:50:06 404 1

原创 0212leetcode刷题5道python

978题目描述:当 A 的子数组 A[i], A[i+1], …, A[j] 满足下列条件时,我们称其为湍流子数组:若 i <= k < j,当 k 为奇数时, A[k] > A[k+1],且当 k 为偶数时,A[k] < A[k+1];或 若 i <= k < j,当 k 为偶数时,A[k] > A[k+1] ,且当 k 为奇数时, A[k] < A[k+1]。也就是说,如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是湍流子数组。返回

2021-02-12 08:39:53 341 2

原创 0211leetcode刷题5道python

11题目描述:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。示例:解答:class Solution: def maxArea(self, height: List[int]) -> int: maxv=0 i,j=0,len(height)-1

2021-02-11 09:15:54 749 4

原创 0210leetcode刷题5道python

剑指offer68-II题目描述:示例:解答:

2021-02-10 08:49:39 461 1

空空如也

空空如也

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

TA关注的人

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