自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 数据挖掘中常用的数据清洗方法

在数据挖掘过程中,数据清洗主要根据探索性分析后得到的一些结论入手,然后主要对四类异常数据进行处理;分别是缺失值(missing value),异常值(离群点),去重处理(Duplicate Data)以及噪音数据的处理。1. 探索性分析探索性分析部分,对于整个数据来讲是获得对数据一个初步的认识以及对先验知识的一个探索分析过程,在我做相关数据挖掘的过程中,主要是利用python相关的科学计算库进行数据初步的探索,例如数据类型,缺失值,数据集规模,各特征下的数据分布情况等,并利用第三方绘图库进行

2020-05-12 09:33:15 801

原创 两个栈实现队列、两个队列实现栈--python

#1.用两个栈实现队列-入队时,直接压入stack中,出队时,先判断stack2是否为空,若为空,则将stack1中的元素弹出到stack2,否则弹出stack2中的元素class Queue(object): def __init__(self): self.stack1 = [] self.stack2 = [] def push(self,...

2020-02-28 15:00:16 146 1

原创 求1+2+3+...+n--python

#求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)#1.递归实现def Sum_Solution(n): return n and (n+Sum_Solution(n-1))#2.reducefrom functools import reducedef Sum_Solution1(n): ...

2020-01-19 17:19:18 1355

原创 把字符串转换为整数

def StrToInt(s): res,mult,flag = 0,1,1 if not s: return res if s[0]=='-' or s[0]=='+': if s[0] == '-' flag = -1 s = s[1:] for i in range(len(s)-1,-1,-1): if '9' >= s[i] >= '0': ...

2020-01-19 16:52:41 117

原创 扑克牌的顺子-python

#从扑克牌随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。小王、大王可以看成是任意数字#思路:可以先将大小王看作是0,先将数组排序,在统计数组中0的个数,最后统计数组排序后相邻数字之间的空缺总数。如果空缺总数小于等于0的个数,那么这个数组是连续的,否则不连续def IsContinuous(numbers): if not numbers: return Fa...

2020-01-19 16:36:01 626

原创 翻转单词顺序-python

#①翻转单词中的所有字符 ②翻转单词中字符顺序def reverse(s, start, end): while start < end: s[start], s[end] = s[end], s[start] start += 1 end -= 1def ReverseSentence(s): if not s: ...

2020-01-19 16:21:06 656

原创 输入一个正数s,打印出所有和为s的连续正数序列--python

#如:输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1-5,4-6,7-8#思路:使用small和big分别表示最小值和最大值,先将small初始化为1,big为2,从small到big的序列和大于s,可以把序列中较小值去掉,增大small值#若small到big的序列和小于s,可以增大big,由于这个序列最少要有两个数字,故需要增加small到(1+s...

2020-01-19 16:20:26 516

原创 数组中和为s的两个数字-python

#输入一个递增排序数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。arr = [1, 2, 4, 7, 11, 15]def FindNumWithSum(arr, s): begin = 0 end = len(arr) - 1 res = [] while end > begin: if arr[begin] + arr[e...

2020-01-19 15:54:39 192

原创 数组中只出现一次的数字--python

#一个整型数组中除了两个数字之外,其他数字都出现了两次。找到这个两个只出现一次是数字。要求时间复杂度O(n),空间复杂度O(1)#思路1:字典,以数组中的数字为键,出现次数为值,最后找到值为1对应的键def findOnceNum(arr): if len(arr) < 2: return None dict, res = {}, [] for i...

2020-01-19 15:48:17 433 1

原创 二叉树的深度--python

#输入一个二叉树的根结点,求树的深度。从根结点到叶结点依次经过的结点形成树的一条路径,最长路径的长度为树的深度class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneroot = TreeNode(8)root.left...

2020-01-19 10:32:46 121

原创 数字在排序数组中出现的次数--python

#使用二分查找的思想list = [1,2,3,3,3,3,4,5,6]def GetNumberOfK(list,k): if len(list) == 0: return 0 mid = len(list)//2 if list[mid] == k: start,end = mid,mid for i in range...

2020-01-06 15:38:38 208

原创 两个链表的第一个公共结点--python

#思路1:先顺序遍历第一个链表的结点,每遍历到一个结点时候,在第二个链表上顺序遍历每个结点。如果在第二个链表上有和第一个链表相同的结点,则找到了公共结点。复杂度O(mn)#思路2:使用辅助栈,分别把两个链表放入到两个栈中,这样两个链表的尾结点就位于两个栈的栈顶,在比较栈顶元素是否相同。如果相同则弹出栈顶元素,接着比较下一个栈顶,直到找到最后一个相同的结点。定义了辅助栈用空间来换取时间。复杂度O(...

2020-01-06 14:32:08 203

原创 在字符串中找出第一个只出现一次的字符--python

#在字符串中找出第一个只出现一次的字符,,若输入"abaccdeff",则输出'b'def firstNoRepeatChar(stri): char_dict = dict() for char in stri: # 使用字典存放每个字符出现的次数 char_dict[char] = char_dict.get(char, 0) + 1 ...

2020-01-06 14:31:10 4801

原创 丑数--python

#我们把只包含因子2、3、5的数称为丑数,求按从小到大顺序的第1500个丑数#思路1:暴力解法:逐个判断每个数是不是丑数--效率较低#判断一个数是否是丑数def isUgly(number): while number % 2 == 0: number /= 2 while number % 3 == 0: number /= 3 wh...

2020-01-06 14:30:09 202

原创 把数组排成最小的数--python

#输入一个整数数组,把数组中的所有数字拼接成一个数,打印能拼接出所有数字最小的一个。例如输入数组[3,32,321],则打印出这3个数字能排列的最小数字321323#思路:# (1)可以先考虑只有两个数字的情况: [3,32] ,可以看出来 332>323 因此需要把数组改变为 [32,3] ;# (2)对于有三个数字的情况: [3,32,321] 我们两两进行比较, 332>3...

2020-01-06 14:29:31 1034

原创 从1到n的整数中1出现的次数--python

#思路1:暴力解法def numberOf1Between1AndN(n): count = 0 for i in range(1,n+1): count += numberOf1(i) return countdef numberOf1(n): count = 0 while n: if n % 10 == 1: count +=1 n = n / 10 re...

2020-01-06 14:28:17 503

原创 连续子数组的最大和--python

#动态规划 若前面子数组的和小于0,则从当前数字开始累加lists = [1, -2, 3, 10, -4, 7, 2, -5]m = 0m_d = 0for i in lists: m += i m = max(m,0) m_d = max(m,m_d)print(m_d)...

2020-01-06 14:24:44 380

原创 最小K个数--python

#输入n个整数,找出其中最小的k个数#思路1:冒泡排序:相邻这个数两两比较,按从小到大顺序交换def findMin_k(arr,k): length = len(arr) for i in range(k): for j in range(i+1,length): if arr[i]>arr[j]: arr[i],arr[j] = arr[j],arr[i] r...

2020-01-06 14:22:05 196

原创 数组中出现次数超过数组一半长度的数字--python

#解法1:基于快排思想的O(n)算法#对数组排序,位于数组中间的数字一定是那个出现次数超过数组长度一半的数字。这个数字为中位数--即长度为n的数组中第n/2大的数字lists = [1, 2, 3, 4, 4, 4, 4, 4, 2]def QuickOrder(arr): if arr is None or len(arr)==0: return [] if le...

2019-12-27 13:57:24 446

原创 字符串排列--python

#输入一个字符串打印出该字符串中所有字符的排列#思路:①可以考虑将字符串分成两部分:第一部分是第一个字符,第二部分是后面所有的字符#先求出所有可能出现在第一个位置的字符def StrCombination(str): if not str: return [] res = [] helper(str, res, '') return sorte...

2019-12-27 11:32:45 93

原创 二叉树中和为某一值的路径--python

#输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输出整数的所有路径,从树的根结点开始向下一直到叶结点所经过的结点形成一条路径def FindNumFromTree(root,target_number): result = [] if not root: return result #如果只有根节点或者找到叶子节点,我们就把其值返回 if not root.left and n...

2019-12-24 16:04:08 215

原创 二叉搜索树的后序遍历序列和前序遍历序列

#输入一个整数数组,判断该数组是否是某二叉搜索树的后序遍历结果#注:二叉搜素树的左子树结点小于根结点 右子树结点大于根结点#思路:可以先找到二叉树的根结点,在基于根结点把整颗树的遍历序列拆分成左子树对应的子序列和右子树对应的子序列,在递归处理这两个子序列def Sequence(arr): if len(arr) == 0: return False #后序遍历,最后一个数是根结点...

2019-12-24 11:50:06 512

原创 遍历二叉树--python

#从上往下打印二叉树--队列思想-先进先出,先将根节点放入队列,弹出,之后在遍历根节点的左右节点都放入队列,依次弹出def OrderPrinTree(root): if root is None: return None queue = [] result = [] queue.append(root) while queue: root_v = queue.pop(0) ...

2019-12-23 16:15:57 57

原创 栈的压入、弹出序列--python

#输入两个整数序列,第一个表示栈的压入顺序,判断第二个序列是否为该栈的弹出序列#思路:建立一个辅助栈,将压栈序列依次压入到辅助栈中,若辅助栈的栈顶数字等于弹出序列的首个元素,那么直接从辅助栈弹出,若下一个弹出的数字不在辅助栈栈顶,就把压栈序列中还未入栈的数字压入辅助栈,#直到把下一个需要弹出的数字压入栈顶为止。如果所有数字都压入栈了依然没找到下一个弹出数字,那么该序列不可能是一个弹出序列de...

2019-12-23 14:05:51 161

原创 包含min函数的栈-python

#思路:新建一个辅助栈来存储当前最小值,当有更小值入栈时,将其压入此栈,最小值为栈顶元素。当栈顶的元素出栈后,此时栈顶的元素就顺应成为新的最小值class min_stack: def __init__(self): self.stack = [] self.minstack = [] def push(self, data): ...

2019-12-20 16:44:43 91

原创 顺时针打印矩阵--python

#思路:每次打印并删除矩阵的第一行,之后在将剩余矩阵逆时针旋转90度,直至打印出全部结果def printMatrix(matrix): # 打印矩阵 result = [] while matrix: result += matrix.pop(0) if matrix: matrix = rotate(matrix) return resultdef rotate(m...

2019-12-20 10:19:52 73

原创 二叉树的镜像--python

#思路:可以事先画图,先前序遍历,遇到有子节点就交换两个子节点,当交换完所有的子节点之后就得到了镜像树def TreeMirror(root): if root is None or (root.left is None and root.right is None): return root.left,root.right = root.right,root.left TreeMir...

2019-12-20 09:44:47 70

原创 递归遍历二叉树--python

#输入两颗二叉树A、B,判断B是不是A的子结构#思路:递归遍历二叉数A,找到A中和B根节点相同的节点,接着顺着这个相等的节点判断子结构是不是和B树的子结构相同def subTree(pRoot1,pRoot2): result = False if pRoot1 is not None and pRoot2 is not None: if pRoot1.val == ...

2019-12-19 18:17:18 67

原创 合并排序的两个链表--python

#合并两个递增的链表并使新链表依旧按照递增排序--递归实现def mergeLinkedList(pHead1, pHead2): if pHead1 is None: return pHead2 elif pHead2 is None: return pHead1 pMergeHead = None if pHead1.val &...

2019-12-19 16:40:49 100

原创 输入链表的头结点,反转该链表并输出反转后链表的头结点--python

def reverseLinkedList_v2(pHead): pNode = pHead pReverseHead = None tmp = None while pNode != None: pNext = pNode.next if pNext is None: pReverseHead = pNode...

2019-12-19 16:01:25 258

原创 链表中倒数第k个节点--python

#思路1:遍历两次链表:倒数的第k个相当于正数的n-k+1个节点,可以先遍历链表获得长度n,之后在重新遍历链表找到倒数的第k个节点。--需要遍历两次链表#思路2:遍历一次链表:两个指针,第一个先走k-1步,之后第二个指针开始从头走,当第一个指针走到链表末尾的时候,第二个指针指向的地方就是倒数第k个节点class ListNode(object): def __init__(self,...

2019-12-19 15:21:21 122

原创 调整数组顺序使奇数位于偶数前--python

#思路1:从头遍历找到偶数从数组中删除并移动到数组末尾 arr = [2,3,4,5,8,7,1]for x in range(0,len(arr)): if arr[x] % 2 ==0: s = arr[x] arr.remove(arr[x]) arr.append(s)#print(arr) #思路2 两个指针,第一个初始化指向数组的第一个数字,只向后移动;第二个初...

2019-12-19 14:56:31 113

原创 数值的整数次方--python

def Power(num,exponent): if num > -1e-7 and num < 1e-7: return 0 if exponent == 0: return 1 ex1 = abs(exponent) result = 1.0 for i in range(ex1): result *= num...

2019-12-19 14:30:18 213

原创 给定链表的头指针和一个节点指针,在O(1)时间删除链接节点--python

# 思路1:从头遍历找到要删除节点的上一个节点,然后把上一个节点的pNext指向要删除节点的下一个节点# 思路2:将要删除节点的下一个节点内容复制并覆盖到要删除的节点,之后在把要删除节点的pNext指向下下一个节点class ListNode(object): def __init__(self,x): self.val=x self.next=None...

2019-12-19 14:17:20 151

原创 二进制中1的个数-python

#实现一个函数,输入一个整数,输出该数2进制表示中1的个数#思路1:将输入整数与1做与运算,结果是1,最右边一位是1,否则是0,之后在将整数右移继续判断。问题:在输入负数时会陷入死循环def NumberOf1(n): cnt = 0 if n < 0: n = n & 0xffffffff return bin(n).count('1')...

2019-12-19 11:25:45 59

原创 斐波那契数列-python

#使用递归来计算会造成比较多的重复运算,效率较低#输入一个n,得到数列的第n项def fib(n):result1 = [0,1]if n<2:return result1[n]fib1 = 0fib2 = 1fibn = 0for i in range(2,n+1):fibn = fib1+fib2fib1 = fib2fib2 = fibnreturn fibn...

2019-12-18 16:54:59 130

原创 找到旋转递增数组的最小值--python

#输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。如:[3,4,5,1,2]为[1,2,3,4,5]的一个旋转arr1 = [3,4,5,6,1,2]arr2 = [1,0,1,1,1] #测试特殊情况#可以使用二分查找法def min_reverse(arr):i1,i2 = 0,len(arr)-1mid = i1 #设置mid=初始值,方便在数组本不需要排序的时候,ar...

2019-12-18 16:06:15 170

原创 重建二叉树--python

#4.重建2叉树#输入二叉树的前序遍历和中序遍历的结果,重建出该二叉树#前序遍历–根-->左–>右 中序遍历–左-->根–>右 后序遍历–左-->右–>根#二叉树特例:①二叉搜索树–左子结点小于等于根结点,右子结点大于等于根结点②堆–分为最大堆和最小堆。在最大堆中根结点值最大,在最小堆中根结点值最小class TreeNode:def init(s...

2019-12-17 17:18:48 71

原创 presto-获取当前日期的最近n个工作日

#手动传入2020年的所有节假日selectcast(dt as varchar(32)) as four_work_day_ago,date(‘2019-12-17’) as dtfrom(selectdt,row_number() over(order by dt desc) as rank1from (values sequence(date(‘2019-12-18’),d...

2019-12-17 16:07:22 3169

原创 从尾到头打印链表-python

#输入一个链表的头结点,从尾到头打印每个结点值#思路:典型的后进先出–可以考虑用栈实现class ListNode(object):def init(self,x):self.val=xself.next=Nonenode = ListNode(1)node.next = ListNode(2)node.next.next = ListNode(3)node.next.next....

2019-12-16 16:02:33 83

空空如也

空空如也

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

TA关注的人

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