![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
一个小迷糊66
不念过去不畏将来
展开
-
1171. 从链表中删去总和值为零的连续节点
给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。删除完毕后,请你返回最终结果链表的头节点。你可以返回任何满足题目要求的答案。(注意,下面示例中的所有序列,都是对 ListNode 对象序列化的表示。)示例 1:输入:head = [1,2,-3,3,1]输出:[3,1]提示:答案 [1,2,1] 也是正确...原创 2019-09-06 10:41:02 · 942 阅读 · 0 评论 -
红白球概率问题 python
个袋子中有红球m个,白球n个。现在要从中取出x个球。那么红球数目多于白球的概率是多少呢?下面的代码解决了这个问题。其中的y表示红球至少出现的次数。这与前文的问题是等价的。因为如果取30个球,要求红球数大于白球数该题目由递归出口很容易看出是一个递归题目,m/(m+n)是第一个球是红球的概率,再调用递归求接下来再取到红球概率n/(m+n)是第一个球是白球的概率,调用递归求接下来取到红球概率,两...原创 2019-08-16 15:08:15 · 2677 阅读 · 0 评论 -
建立二叉树并把二叉树转换为双向链表 python
建立二叉树class TreeNode(object): def __init__(self, val = None): self.val = val self.left = None self.right = NoneA, B, C, D, E, F = [TreeNode(x) for x in range(1,7)]A.left = BA.right = CB.lef...原创 2019-08-12 16:06:18 · 357 阅读 · 0 评论 -
正方形矩阵顺时针旋转90°+顺时针打印矩阵 python
分圈处理,先打印外圈,在打印内圈def rotate(matrix): tR = 0 tC = 0 dR = len(matrix)-1 dC = len(matrix[0])-1 while tR < dR: rotateEdge(matrix, tR, tC, dR, dC) tR += 1 tC ...原创 2019-08-12 11:06:38 · 356 阅读 · 0 评论 -
手撕KNN python
import numpy as npimport operatordef createDataSet(): #四组二维特征 group = np.array([[1,101],[5,89],[108,5],[115,8]]) #四组特征的标签 labels = ['爱情片','爱情片','动作片','动作片'] return group, labels...转载 2019-08-24 22:13:33 · 282 阅读 · 0 评论 -
无重复字符的最长子串 python
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所...原创 2019-08-15 17:47:21 · 191 阅读 · 0 评论 -
手撕iou python
def iou(bbox1, bbox2): # bbox1 = [x0,y0,x1,y1] x0, y0, x1, y1 = bbox1 x2, y2, x3, y3 = bbox2 s1 = (x1-x0)*(y1-y0) s2 = (x3-x2)*(y3-y2) w = max(0, min(x1, x3) - max(x0,x2)) ...原创 2019-08-24 21:46:12 · 385 阅读 · 0 评论 -
剑指offer:把数组排成最小的数(Python)
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。def strSort(list): if len(list) <= 1: return list left = strSort([i for i in list[1:] if i+l...原创 2019-08-12 00:17:54 · 117 阅读 · 0 评论 -
电话字母组合+全排列(dfs) python
要求:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:”23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].class Solution(object): def letterCombinations(self...原创 2019-08-11 21:00:38 · 451 阅读 · 0 评论 -
链表排序 python
创建链表,并按奇偶分开,并排序class ListNode(object): def __init__(self, val): self.val = val self.next = Noneclass Solution(object): def sortList(self, head): if not head or not he...原创 2019-08-11 17:28:29 · 1007 阅读 · 0 评论 -
堆排序 python
def heapsort(arr): if arr == None or len(arr)<2: return arr for i in range(len(arr)): heapInsert(arr,i) size = len(arr) arr[0], arr[size-1] = arr[size-1], arr[0] ...原创 2019-08-24 11:28:41 · 75 阅读 · 0 评论 -
桶排序\基数排序\ python
1 # 桶排序要求:2 # 有几个输入数据,要求对其进行从小到大或者从大到小进行排序34 # 思路:5 # 首先建立需要的桶,然后每个位置初始化,接着将需要处理的数据根据数值在相应位置设置值为这个值出现的次数6 # 使用字典可能会更好一点,但是字典的排列是无序的,使用键值进行排序的话增加代码量import randomdef buckerSort(alist): _max =...原创 2019-08-11 10:54:00 · 156 阅读 · 0 评论 -
单调栈求最大子矩阵的大小 python
题目:给定一个整型矩阵map, 其中的值只有0 和 1 两种, 求其中全是1 的所有矩形区域中, 最大的矩形区域为1的数量。例如:1 0 1 11 1 1 11 1 1 0其中,最大的矩形区域有6个1,所以返回6 。分析:如果矩阵的大小为 O(N * M) , 如何达到时间复杂度为O( N* M) ?1 : 矩阵的行数为 N, 以每一行做切割, 统计以当前行作为低的情况下,每个位置...原创 2019-08-07 17:55:33 · 696 阅读 · 0 评论 -
求一个数组中元素相减的最大值 python
一个数组a[0…n-1],求a[i]-a[j]的最大值,其中i>j题目的要求是时间复杂度O(n),空间复杂度O(1).两个错误的思路要避免,一是数组排序,最好的排序算法时间复杂度也是nlogn,明显达不到要求。另外一个是遍历数组求得最大值和最小值,然后相减,但照顾不到i<=j的条件。正确的思路是对上述第二个算法的改进,将数组第一个元素设置为最大和最小值(i=j=0),最大差值的初...原创 2019-08-07 16:20:37 · 1312 阅读 · 1 评论 -
直观打印二叉树 Python
class Node(object): def __init__(self,val=None): self.val = val self.left = None self.right = None def printTree(root): if not root: return print('Binary...原创 2019-08-09 12:01:20 · 412 阅读 · 0 评论 -
二叉树先中后序遍历递归非递归 Python
class TreeNode: def __init__(self, val, left=None, right=None): self.val = val self.left = left self.right = rightA,B,C,D,E,F = [TreeNode(x) for x in [1,2,3,4,5,6]]A.l...原创 2019-08-09 11:18:39 · 287 阅读 · 0 评论 -
螺旋队列问题 python
设1点的坐标为(0,0),x方向向右为正,y向下为正,如7的坐标是(-1,-1)。编程实现任意输入一个点的坐标(x,y)。输出所对应的数字。7 8 96 1 25 4 3def foo(x, y): t = max(abs(x), abs(y)) #属于第几圈 u = 2*t + 1 w = u*u #该圈最大的数 if x == -t: ...原创 2019-08-16 15:47:41 · 851 阅读 · 0 评论 -
只出现一次的数字 python
#只出现一次的数字1, 其余数字都出现两次def singleNumber(nums): a = 0 for num in nums: a = a^num return aprint(singleNumber([1,1,2,2,3,3,8]))#只出现一次的数字2, 其余数字都出现三次#1.位运算求解此题;#2.如果把所有出现三次的数字的二进制表...原创 2019-08-16 16:34:58 · 505 阅读 · 0 评论 -
leetcode 841 钥匙和房间 python
有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,…,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。最初,除 ...原创 2019-08-12 21:53:00 · 351 阅读 · 0 评论 -
二叉树中和为某一值的路径 python
输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。注意说stack类似指针存储的,相当于全局的,要pop,cursum只是局部的,不用减去。。stack要深拷贝进res,否则res中的也会被pop掉。class Solution: def FindPath(self, root, expectN...原创 2019-08-01 10:56:43 · 519 阅读 · 0 评论 -
区间合并 python
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。来源:力扣(...原创 2019-08-11 23:09:54 · 1677 阅读 · 0 评论 -
129. 求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径 1->2->3 代表数字 123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3]1/ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节点...原创 2019-09-04 16:52:48 · 147 阅读 · 0 评论 -
124. 二叉树中的最大路径和
给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6class Solution(object): def maxPathSum(self, root): #需要一个函数去求单支路上的最大值...原创 2019-09-04 16:38:09 · 117 阅读 · 0 评论 -
另一个树的子树
给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。递归class Solution(object): def isSubtree(self, s, t): def IfSame(s, t): if s==None and ...原创 2019-09-03 22:12:13 · 94 阅读 · 0 评论 -
leetcode41 缺失的第一个正数
给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1当没有1、2、3这些时,必然是1、2、3这些数中的。让在这个区间内的可行的数回到自己的位置,哪一个位置没有对应的则就是。如[1,2,0]是3没在,[3,4,-1,1]调整为[1...原创 2019-09-03 17:21:02 · 136 阅读 · 0 评论 -
leetcode287. 寻找重复数
给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数...转载 2019-09-03 17:16:34 · 155 阅读 · 0 评论 -
整数中1出现的个数
题目描述求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。个位我们知道在个位数上,1会每隔10出现一次,例如1、11、21等等,我们发...转载 2019-09-03 17:12:07 · 249 阅读 · 0 评论 -
二分查找 Python
def binary_search(target, nums): index=-1 l=0 r=len(nums)-1 while l<=r: mid=(l+r)//2 if nums[mid]<target: l=mid+1 ...原创 2019-08-26 22:21:35 · 1109 阅读 · 0 评论 -
旋转数组系列 python
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。class Solution(object): def rotate(self, nums, k): n = len(nums) k %= n for i in range(k): m = nums.pop() nums.i...原创 2019-08-26 22:14:00 · 237 阅读 · 0 评论 -
Pow(x,n) python
实现 pow(x, n) ,即计算 x 的 n 次幂函数。递归class Solution(object): def myPow(self, x, n): if n<0: n = -n return 1/self.help(x, n) return self.help(x, n) def he...原创 2019-08-26 20:51:54 · 421 阅读 · 0 评论 -
括号的生成 Python
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/generate-parentheses著作权归领扣网络所...原创 2019-08-26 10:46:22 · 842 阅读 · 0 评论 -
旋转数组 python
matrix = [ [1,2,3], [4,5,6], [7,8,9]]def rotate1(matrix): matrix[:] = map(list, zip(*matrix[::-1]))rotate1(matrix)print(matrix)# zip#list(map(list,zip(matrix[2],matrix[1],matrix[0]))...原创 2019-08-18 15:47:58 · 127 阅读 · 0 评论 -
二叉树的最大/小深度 递归非递归 python
最大深度递归结束的条件是节点为空,返回0非递归用栈 去深度优先搜索树的所有节点最小深度非递归用队列 , 一旦节点没有左右孩子,就结束返回了class Solution(object): def maxDepth1(self, root): """ :type root: TreeNode :rtype: int ""...原创 2019-08-22 15:35:43 · 864 阅读 · 0 评论 -
链表排序 Python
插入排序class Solution(object): def insertionSortList(self, head): p = new_s =ListNode(None) #插入的有可能在头结点前面 new_s.next = head cur = head while cur and cur.next: ...原创 2019-08-12 23:07:03 · 653 阅读 · 0 评论 -
删除链表倒数第N个结点 python
class Solution(object): def removeNthFromEnd(self, head, n): """ :type head: ListNode :type n: int :rtype: ListNode """ h=ListNode(-1) h.nex...原创 2019-08-18 16:31:24 · 95 阅读 · 0 评论 -
机器人的运动范围 python
题目描述:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?class Solution: d...原创 2019-08-08 22:06:28 · 507 阅读 · 0 评论 -
包含min函数的栈 python
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。定义一个辅助栈,专门更新最小值即可。class Solution: def __init__(self): self.stack = [] self.min_stack = [] def push(self, node): self.stack.append(node) i...原创 2019-07-24 20:55:50 · 213 阅读 · 0 评论 -
顺时针打印数组
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.先打印最外面一圈,再打印里面循环。class Solution: def printMatrix(self,matrix):...原创 2019-07-24 20:41:40 · 94 阅读 · 0 评论 -
二叉树的镜像 python
操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树8/ 6 10/ \ / 5 7 9 11镜像二叉树8/ 10 6/ \ / 11 9 7 5递归交换树的左右节点即可class Solution: def Mirror(self, root): if root == None or (root.left == ...原创 2019-07-24 17:27:54 · 149 阅读 · 0 评论 -
树的子结构 python
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)递归遍历A树,若遇到A树的节点和B树根节点相同,则开始判断是否为子树。class Solution: def HasSubtree(self, pRoot1, pRoot2): result = False if not pRoot1 or not pRoot2: return False...原创 2019-07-24 17:14:12 · 152 阅读 · 0 评论