Python
佛系调参
这个作者很懒,什么都没留下…
展开
-
剑指offer-数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。#解法一:利用字典。时间和空间复杂度都是O(n)class Solution: # 这里要特别注意~找到任...原创 2019-03-23 23:23:16 · 108 阅读 · 0 评论 -
leetcode226-Invert Binary Tree翻转二叉树
翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1解法:迭代# Definition for a binary tree node.# class TreeNode:# def ...原创 2019-03-18 21:11:15 · 112 阅读 · 0 评论 -
leetcode965-Univalued Binary Tree单值二叉树
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回true;否则返回false。示例 1:输入:[1,1,1,1,1,null,1] 输出:true示例 2:输入:[2,2,2,5,2] 输出:false解法一:递归一颗树是单值的,当且仅当根节点的子节点所在的子树也是单值的,同时根节点的值与子节点的值相同。我们可以使...原创 2019-03-18 22:21:53 · 146 阅读 · 0 评论 -
leetcode110-Balanced Binary Tree平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树[3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回true。示例 2:给定二叉树[1,2,2,3,3,null,null...原创 2019-03-18 22:24:43 · 107 阅读 · 0 评论 -
leetcode543-二叉树的直径
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。注意:两结点之间的路径长度是...原创 2019-03-18 22:43:09 · 134 阅读 · 0 评论 -
剑指offer-调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。class Solution: def reOrderArray(self, array): # write code here even,odd=[],[] ...原创 2019-03-22 21:34:14 · 79 阅读 · 0 评论 -
剑指offer-反转链表
题目描述输入一个链表,反转链表后,输出新链表的表头。#解法1:利用数组# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回ListNode de...原创 2019-03-22 22:06:14 · 95 阅读 · 0 评论 -
leetcode463-Island Perimeter岛屿的周长
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示例...原创 2019-03-21 21:27:52 · 156 阅读 · 0 评论 -
leetcode733-图像渲染
有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标(sr, sc)表示图像渲染开始的像素值(行 ,列)和一个新的颜色值newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与...原创 2019-03-21 20:28:44 · 226 阅读 · 0 评论 -
leetcode872-叶子相似的树
请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列。举个例子,如上图所示,给定一颗叶值序列为(6, 7, 4, 9, 8)的树。如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。如果给定的两个头结点分别为root1和root2的树是叶相似的,则返回true;否则返回false。# Definition for ...原创 2019-03-21 19:57:00 · 130 阅读 · 0 评论 -
leetcode867-转置矩阵
给定一个矩阵A,返回A的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]解法一:初始化一个新的矩阵来保存答案。尺寸为R x C的矩阵A转置后会得到尺寸为C x R的矩阵ans,对此有ans[c][r] = A[...原创 2019-03-13 11:35:25 · 204 阅读 · 0 评论 -
leetcode819-最常见的单词
给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。示例:输入: paragraph = "Bob hit a ball, the hit BALL flew far a...原创 2019-03-17 23:10:58 · 173 阅读 · 0 评论 -
LeetCode118-杨辉三角
给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]class Solution(object): def generate(self, numRo...原创 2019-03-12 22:21:15 · 132 阅读 · 0 评论 -
leetcode231-2的幂
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例1:输入: 1输出: true解释: 20= 1示例 2:输入: 16输出: true解释: 24= 16思路一:2的幂对2取余数应该为0,循环递减nclass Solution(object): def isPowerOfTwo(self, n): """ ...原创 2019-03-12 21:51:29 · 180 阅读 · 0 评论 -
删除重复字符串
解法:python 函数灵活运用O(n)import syss=sys.stdin.readline().strip() #s="banana"result=""for item in s: if item not in result: result = result + itemprint(result)类似题目:删除重复单词import s...原创 2019-03-11 22:22:55 · 1426 阅读 · 0 评论 -
leetcode345-反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入: "hello"输出: "holle"示例 2:输入: "leetcode"输出: "leotcede"说明:元音字母不包含字母"y"。思路:题目说了“反转”,那就用栈喽。但要同时保持元音字母的索引位置和字母值两个class Solution: def reverseVowe...原创 2019-03-15 09:52:17 · 106 阅读 · 0 评论 -
leetcode566-重塑矩阵
在MATLAB中,有一个非常有用的函数reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入:...原创 2019-03-14 15:15:41 · 151 阅读 · 0 评论 -
剑指offer-链表中倒数第k个节点
输入一个链表,输出该链表中倒数第k个结点。思路:两个指针,一个指针先走k步,然后两个一起走、# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def Find...原创 2019-03-22 23:36:43 · 82 阅读 · 0 评论 -
剑指offer-数值的整数次方python
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解法一:直接乘class Solution: def Power(self, base, exponent): # write code here res=1 if exponent>0: wh...原创 2019-04-03 22:54:52 · 171 阅读 · 0 评论 -
剑指offer50-第一次只出现一次的字符
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).注意:因为题目要求返回字符(或者字符出现的位置),一次第二次遍历是也是字符串s,而不是哈希表#方法一:利用数组自己建立个哈希表class Solution: def FirstNotRepeatingCha...原创 2019-03-23 21:36:40 · 140 阅读 · 0 评论 -
kmeans及其python实现
k-means算法的基础是最小误差平方和准则,代价函数是:式中是第c族的质心坐标(均值)伪代码如下:创建k个点作为初始的质心点(随机选择)当任意一个点的簇分配结果发生改变时: 对数据集中的每一个数据点: 对每一个质心: ...原创 2019-08-20 23:14:46 · 552 阅读 · 0 评论 -
leetcode15-三数之和
给定一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]法一:暴力遍历,O(N...原创 2019-07-12 14:51:12 · 103 阅读 · 0 评论 -
剑指offer-字符串的排列 python
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路:循环遍历每个字符,让每个字符打头,然后继续递归遍历其余的字符因为可能有字符重复,所以最后用到set()因为要按字典序...原创 2019-07-16 11:31:54 · 156 阅读 · 0 评论 -
剑指offer-丑数 python
题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。class Solution: def GetUglyNumber_Solution(self, index): # write code here if...原创 2019-05-27 22:35:39 · 108 阅读 · 0 评论 -
python 函数
目录python函数的参数传递:参数类别:匿名函数(lambda表达式)return语句变量作用域global和nonlocal关键字python函数的参数传递:不可变类型:如数值、字符串、元组,类似c++的值传递 可变类型:如列表、字典,类似c++的引用传递参数类别:必须参数:须以正确的顺序传入函数,调用时的数量必须和声明时一样,否则会输出posi...原创 2019-05-26 22:40:44 · 139 阅读 · 0 评论 -
python的类
__init__()类有一个名为__init__()的特殊方法(构造方法),该方法在类实例化时会被自动调用;当然,__init__()方法也可以有参数,参数通过__init__()传递到类的实例化操作上,例如:class Complex: def __init__(self, realpart, imagpart): self.r = realpart ...原创 2019-05-26 14:14:31 · 183 阅读 · 0 评论 -
os目录和文件批量操作相关函数
目录心得:os.path模块:os模块:glob.glob模块:获取当前文件的绝对路径:获取当前文件所在文件夹的绝对路径:批量修改文件夹下子文件夹的名字:批量删除文件夹下子文件夹里指定的文件:心得:路径在python里其实就是字符串,有时不要忘记在目录和文件之间加"/"os.path模块:os.path.abspath(path):返回绝对路径...原创 2019-05-25 21:28:27 · 336 阅读 · 0 评论 -
剑指offer-旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:二分查找class Solution: def minNumberInRotateArr...原创 2019-04-02 22:09:56 · 114 阅读 · 0 评论 -
华为笔试题-明明的随机数
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。InputParamn...原创 2019-04-02 17:39:38 · 215 阅读 · 0 评论 -
快速排序 python
实现思路:两个指针left,right分别指向列表的第二个元素和最后一个元素,然后取一个参考值,默认为第一个列表的第一个元素list[0],称为pivotvalue 然后left指向的值先和参考值pivotvalue进行比较,若list[left]小于或等于pivotvalue值,left就一直向右移动,left+1,直到移动到大于pivotvalue值的地方,停住 right指向的值和参...原创 2019-04-01 22:01:02 · 123 阅读 · 0 评论 -
剑指offer-用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:stack1用于存放push的元素 从stack2中pop元素class Solution: def __init__(self): self.stack1=[] self.stack2=[] def push(se...原创 2019-04-01 19:25:34 · 129 阅读 · 0 评论 -
剑指offer-顺时针打印矩阵python
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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.python:class Solution: # matrix类型为二维列表,需要返回列表 def pr...原创 2019-04-05 22:05:28 · 153 阅读 · 0 评论 -
剑指offer-树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)pythonclass Solution: def HasSubtree(self, pRoot1, pRoot2): # write code here result=False if pRoot1 and pRoot2: ...原创 2019-04-05 16:44:21 · 94 阅读 · 0 评论 -
剑指offer-对称的二叉树
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。思路:针对前序遍历定义一种对称的前序遍历算法:先遍历父节点,再遍历它的右子节点,最后遍历它的左子节点python:# class TreeNode:# def __init__(self, x):# self.val = x# ...原创 2019-04-05 16:22:18 · 91 阅读 · 0 评论 -
剑指offer-链表中环的入口节点 python
给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。思路:确定一个链表中是否存在环,用快慢指针法:走的快的指针追上了走得慢的指针,则存在环 得到环中节点的数目。两个指针相遇的节点一定位于环内,可以从这个相遇的节点出发,一边移动一边计数直到再次回到该节点 找到环的入口:两个指针p1,p2都先指向表头,如果链表中的环有n个节点,则指针p1先移动n步,然后两个指针一相同...原创 2019-04-04 22:00:26 · 213 阅读 · 0 评论 -
leetcode88-Merge Sorted Array合并两个排序数组python
给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 ...原创 2019-03-09 20:52:41 · 159 阅读 · 0 评论 -
leetcode169-Majority Element求众数
给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2思路:采用哈希表(字典),记录每一个数出现的次数import mathclass Solution: ...原创 2019-03-14 11:14:17 · 123 阅读 · 0 评论 -
leetcode155-min stack最小栈 python
思路: 采用两个栈,且两个栈长度相同self.result栈中存放元素 self.min栈中存放每次添加元素时result栈中元素的最小值。result栈和mi栈长度相同 注意:本方法采用两个栈长度相同的策略,即min栈中存放的是result栈中添加或删除元素后result栈中的最小值。若采用min栈中只存放最小值(遇到大的值min栈不更新),则此时MinStack.pop()不好...原创 2019-01-18 13:17:47 · 203 阅读 · 0 评论 -
leetcode83-删除排序链表中的重复元素-python
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def deleteDuplicates(self, head): ...原创 2019-01-17 18:42:45 · 259 阅读 · 0 评论 -
leetcode9-回文数 python
方法一:转化为字符串,然后反转 O(n)class Solution: def isPalindrome(self, x): """ :type x: int :rtype: bool """ if x<0: return False else: ...原创 2019-01-17 16:29:40 · 285 阅读 · 0 评论