
python3
文章平均质量分 50
Aries888
数据分析师,坚持学习和分享高质量内容
展开
-
Python3&数据结构之冒泡排序
冒泡排序顾名思义,这个算法的过程可以理解为水泡从水底冒出来这种现象,且越到上面的气泡越大。一、基本步骤:1.冒泡排序要排序n个数,由于每遍历一趟只排好一个数字,则需要遍历n-1趟,所以最外层循环是要循环n-1次 2.每次趟遍历中需要比较每归位的数字,则要在n-1次比较中减去已排好的i位数字,则第二层循环要遍历是n-1-i次注:1中每次循环都会吐出最大(最小)气泡(也就是数字),...原创 2018-05-10 13:41:32 · 976 阅读 · 0 评论 -
python3.6.4使用pymysql库连接mysql
一开始看菜鸟教程讲的是MySQLdb,后来发现这个库只支持2.x不支持3.x,于是换了pymysql。这里用的数据库是mysql5.7.20,数据管理工具使用的Navicat Premium。1.首先安装pymysql库pip install pymysql注:因为已经安过了,所以这里提示Requirement already satisfied。因为要用mysql,所以首先启动mysql首先进入...原创 2018-05-07 19:05:23 · 388 阅读 · 0 评论 -
Python3连接sqlserver
Python3连接sql server主要有两个库1.pymssql2.pyodbc库1的下载网址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql注:下载的时候看好自己的python版本信息pip install 直接把下载好的.whl文件拉到cmd中 或自行百度whl安装库2 直接 pip install pyodb...原创 2018-07-26 21:29:45 · 16669 阅读 · 2 评论 -
Python3在百度地图上求两点坐标
假设两个点坐标: 数学公式:具体代码,以及以沈阳中街地铁口到东中街地铁口为例。import mathdef getDistance(longitude1,latitude1,longitude2,latitude2): #维度 lat1 = (math.pi / 180) * latitude1 lat2 = (math.pi / 180) * la...原创 2018-07-26 21:45:18 · 325 阅读 · 0 评论 -
Python3&数据结构之二分查找
#实现一个二分查找#输入:一个有序数组和要找的元素#输出:待查找的元素的位置def binary_search(list,item): low = 0 high = len(list) - 1 while low <= high: mid = (low + high) // 2 guess = list[mid] ...原创 2018-11-28 22:59:52 · 211 阅读 · 0 评论 -
Python3&数据结构之广度优先搜索(Breadth First Search,BFS)
说到BFS,首先要介绍图什么是图?图模拟一组链接,由节点和边组成图分为有向图(directed graph)和无向图(undirected graph)有向图中的关系是单向的,所以可以由箭头表示无向图中直接相连的节点互为邻居,所以没有箭头参考算法图解,例如,下面两个图是等价的。那么广度优先搜索有什么用呢?它可以帮助回答下面两类问题:从节点A出发,有前往节点B的路径吗...原创 2018-12-02 13:13:57 · 816 阅读 · 0 评论 -
Python3&数据结构之插入排序
插入排序(insert sort)插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。算法步骤:1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相...原创 2018-12-04 12:59:01 · 212 阅读 · 0 评论 -
Python3&数据结构之选择排序
第一种写法:来自算法图解def findSmallest(arr): smallest = arr[0] smallest_index = 0 for i in range(1,len(arr)): if arr[i] < smallest: smallest = arr[i] smallest_i...原创 2018-11-30 00:00:46 · 147 阅读 · 0 评论 -
Python3&数据结构之递归
#递归def fact(x): if x == 1: return 1 else: return x * fact(x - 1)#tail recursion(尾递归)def tail_recusion(x,total=1): if x == 1: return total else: re...原创 2018-11-30 11:30:23 · 271 阅读 · 0 评论 -
Python3&数据结构之快速排序
然后使用快速排序使用了分而治之(divide and conquer,D&C)的思想主要思想就是把一个无序数组分为3个部分:递归的思想重复以上步骤中心点(pivot):该点是随机选的,一般选数组中索引为0,即第一个数当中心点 左边(less):小于等于中心点的数组成的数组 右边(greater):大于中心点的数组成的数组参考算法图解给出的代码#quicksortdef ...原创 2018-11-30 16:35:16 · 180 阅读 · 0 评论 -
Python3&数据结构之合并(归并)排序
合并(归并)排序和快速排序一样也采用了分而治之(divide and conquer,D&C)的思想不过对比快速排序,mergesort没有pivot(中心点)分的部分:它是把一个无序数组按照数组大小的中心数分为两部分 if len(n) < 2: #分的阶段,即divide return n mid = len(n) // 2...原创 2018-12-01 15:16:10 · 386 阅读 · 0 评论 -
Leetcode 1. 两数之和(Python3)
1. 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1] #two...原创 2018-12-05 11:48:29 · 368 阅读 · 0 评论 -
Leetcode 7. 整数反转(Python3)
7.整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么...原创 2018-12-05 12:39:22 · 658 阅读 · 0 评论 -
Python3&数据结构之二叉树
实现二叉树以及遍历在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:(1)空二叉树——如图(a);(2)只有一个根结点的二叉树——如图(b);(3)只有左子树——如...原创 2018-12-07 23:50:21 · 686 阅读 · 0 评论 -
Leetcode 69.x 的平方根(Python3)
69.x 的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 自己写的代码:思想...原创 2018-12-12 16:58:56 · 221 阅读 · 0 评论 -
Leetcode 9.回文数(Python3)
9.回文数判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此...原创 2018-12-08 21:02:17 · 233 阅读 · 0 评论 -
Python3写精确率(precision)、召回率(recall)以及F1分数(F1_Score)
1. 四个概念定义:TP、FP、TN、FN先看四个概念定义:- TP,True Positive- FP,False Positive- TN,True Negative- FN,False Negative如何理解记忆这四个概念定义呢?举个简单的二元分类问题 例子:假设,我们要对某一封邮件做出一个判定,判定这封邮件是垃圾邮件、还是这封邮件不是垃圾邮件?如果判定...原创 2018-12-03 17:39:58 · 33376 阅读 · 4 评论 -
Python3&数据结构之希尔排序
希尔排序(Shell sort) 算法描述:Step1:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序。Step2:依次缩减增量再进行排序。Step3:待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。算法结束。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序相较...原创 2018-12-05 23:58:58 · 200 阅读 · 0 评论 -
Leetcode 28.实现strStr()(Python3)
28.实现strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack =...原创 2018-12-13 10:47:35 · 240 阅读 · 0 评论 -
Leetcode 35.搜索插入位置(Python3)
35.搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: ...原创 2018-12-13 11:22:14 · 328 阅读 · 0 评论 -
Leetcode 88.合并两个有序数组(Python3)
88. 合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0]...原创 2018-12-19 14:57:32 · 347 阅读 · 0 评论 -
Python3&数据结构之树结构
什么是树?来自百度百科的定义:树(tree)是包含n(n>=0)个结点的有穷集,其中:(1)每个元素称为结点(node);(2)有一个特定的结点被称为根结点或树根(root)。(3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合Ti(1<=i<=m)本身也是一棵树,被称作原树的子树(subtree)。树...原创 2018-12-06 23:23:49 · 1348 阅读 · 0 评论 -
Leetcode 38.报数(Python3)
38.报数报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" (&原创 2018-12-14 10:59:55 · 293 阅读 · 0 评论 -
Python之赋值、深浅拷贝
拷贝就是一个变量的值传给另外一个变量。在python 中 id()方法可以查看存放变量的内存地址,这为我们下面理解深浅copy提供了便利。浅拷贝是指把存放变量的地址值传给被赋值,最后两个变量引用了同一份地址:a = [1,2,3]b = aprint(id(a),id(b))print(a)print(b)b.append(4)print(a)#output:#1656...原创 2018-12-07 11:44:33 · 161 阅读 · 0 评论 -
Leetcode 13.罗马数字转整数(Python3)
13.罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 I...原创 2018-12-09 14:05:53 · 260 阅读 · 0 评论 -
Leetcode 12.整数转罗马数字(Python3)
12.整数转罗马数字罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 I...原创 2018-12-09 15:12:27 · 414 阅读 · 0 评论 -
Leetcode 14.最长公共前缀(Python3)
14.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。原创 2018-12-09 20:06:13 · 190 阅读 · 0 评论 -
Leetcode 206.反转链表(Python3)
206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 代码:# Definition for singly-linked list.# class ListNo...原创 2018-12-20 17:23:45 · 559 阅读 · 0 评论 -
Leetcode 141. 环形链表 & 142. 环形链表 II(Python3)
141. 环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [...原创 2018-12-20 17:28:52 · 588 阅读 · 0 评论 -
Leetcode 24.两两交换链表中的节点(Python3)
24. 两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 写法1:# Definition for singly-linked...原创 2018-12-20 17:47:34 · 219 阅读 · 0 评论 -
Leetcode 53.最大子序和(Python3)
53.最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 只能想到暴力破解,根本达不到O(n...原创 2018-12-15 22:31:09 · 165 阅读 · 0 评论 -
Leetcode 232. 用栈实现队列 & 225. 用队列实现栈(Python3)
232. 用栈实现队列使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek()...原创 2018-12-21 10:49:37 · 735 阅读 · 0 评论 -
Leetcode 58.最后一个单词的长度(Python3)
58.最后一个单词的长度给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5代码:#length-of-last-wordclass Solution: def lengthOfLastW...原创 2018-12-16 12:10:25 · 159 阅读 · 0 评论 -
Leetcode 66.加一(Python3)
66. 加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表...原创 2018-12-16 13:38:14 · 281 阅读 · 0 评论 -
Leetcode 703. 数据流中的第K大元素 & 239. 滑动窗口最大值(Python3)
开始在极客时间学习覃超老师的算法面试,算作笔记同时继续刷题。目前为止,老师大部分用的py3,也有用java。这两道题都可以用优先队列(PriorityQueue)来解决:回顾栈、队列、优先队列:PriorityQueue:Mini Heap:Max Heap:各种Heap的时间复杂度: 703. 数据流中的第K大元素设计一个找到数据流中...原创 2018-12-21 21:31:04 · 909 阅读 · 0 评论 -
Leetcode 122. 买卖股票的最佳时机 II(Python3)
122. 买卖股票的最佳时机 II给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天...原创 2018-12-26 22:24:11 · 162 阅读 · 0 评论 -
Leetcode 121. 买卖股票的最佳时机(Python3)
121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利...原创 2018-12-26 23:09:24 · 211 阅读 · 0 评论 -
Leetcode 20.有效的括号(Python3)
20.有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"...原创 2018-12-10 20:33:04 · 330 阅读 · 0 评论 -
Leetcode 102. 二叉树的层次遍历(Python3)
102. 二叉树的层次遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]思路:1.BFSa.level...原创 2018-12-27 12:55:29 · 318 阅读 · 0 评论 -
Leetcode 67.二进制求和(Python3)
67. 二进制求和给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101" 代码:#add-binaryclass Solution: def原创 2018-12-17 12:04:06 · 426 阅读 · 0 评论