python算法

堆相关题目-python

倖福魔咒の 提交于 2019-12-04 19:22:17
栈&队列&哈希表&堆-python https://blog.csdn.net/qq_19446965/article/details/102982047 1、丑数 II 编写一个程序,找出第 n 个丑数。 丑数就是只包含质因数 2, 3, 5 的正整数。 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 说明: 1 是丑数。 n 不超过1690。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/ugly-number-ii 先回忆一下《丑数 I》 编写一个程序判断给定的数是否为丑数。 https://leetcode-cn.com/problems/ugly-number-ii/ class Solution(object): def isUgly(self, num): """ :type num: int :rtype: bool """ if num <= 0: return False if num == 1: return True while num >= 2 and num % 2 == 0: num /= 2 while num >= 3 and num % 3 == 0: num /= 3 while num >= 5

做项目感想

时光总嘲笑我的痴心妄想 提交于 2019-12-04 18:51:45
别人怎么学? 最近手里的项目不少,越跟别人接触,越发现别人比自己懂得多,果然要跟上进的人,志同道合的人交流才能进步更快! 怎么学? 比如别人使用的python lib,我就百度不到,不知道怎么学,还是一个朋友帮忙(参加项目的好处,高人可以指点)。 python补基础的:(以后把这个总结输出) 官方文档: https://docs.python.org/zh-cn/3.7/library/index.html(忽然发现别人常用的,都是标准库里的,好丢人呦 ) cookbook: https://python3-cookbook.readthedocs.io/zh_CN/latest/index.html 目前在安排学习计划:(这是原来的顺序,。。。) 1、我家买的Js,Jquery的书籍(工作需要) 2、数据结构与算法之美,极客时间的课程(自己夯实地基的,学了3课,停滞了) 3、github上的mall项目的研究(捡起Java,顺便看看商城怎么弄,及java的一些技术) 4、微信小程序的继续深入了解(项目要用,随用随查) 5、支付宝支付接口(项目要用,刚接触,先调试后端接口) 6、python基础:上面两个地址的(工作用的) (学习的东西要坚持写博客,输出,巩固。。。) 给自己加油 坚持,充实,加油 来源: https://www.cnblogs.com/langxing/p

【最新发布】最新Python学习路线,值得收藏

橙三吉。 提交于 2019-12-04 17:55:57
随着AI的发展,Python的薪资也在逐年增加,但是很多初学者会盲目乱学,连正确的学习路线都不清楚,踩很多坑,为此经过我多年开发经验以及对目前行业发展形式总结出一套最新python学习路线,帮助大家正确的学习python【总共9段】 第一段:python语言基础:(带你熟悉pythonp语言的特性,学会使用python开发环境,使用python开发一些简单的案例) (1)Python3入门,数据类型,字符串 (2)判断/循环语句,函数, (3)类与对象,继承,多态 (4)tkinter界面编程 (5)文件与异常,数据处理简介 (6)Pygame实战飞机大战 核心关键:python实战是检验学习效果的唯一标准,不能懒,如果你缺乏最新python实战教程,去小编的python技术扣裙 :易久武起而而流易思 翻译成数字就可以找到了,自己去下 第二段:python语言高级:(python语言的高级库,常用的企业级开发案例实战) (1)Python常见第三方库与网络编程 (2)面向对象,Python正则表达式 (3)求职数据爬虫,金融数据爬虫,多线程爬虫 (4)Python线程、进程 (5)Python mysql数据库应用,Nosql数据库,sql,jython 第三段:python全栈工程师前端 (学会开发前端网页,会使用流行的前端框架) (1) HTML+css (5)

python中的RSA加密与解密

北慕城南 提交于 2019-12-04 17:37:52
什么是RSA:   RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。   在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。   正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。   RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,截止2017年被普遍认为是最优秀的公钥方案之一。 SET(Secure Electronic Transaction)协议中要求CA采用2048bits长的密钥

Python高性能编程

北战南征 提交于 2019-12-04 15:49:35
前言 python现在已经被广泛使用了,它效率高,平常做一些简单的实验,处理一些数据都可以使用python。 我写这篇文章的目的,是想和大家分享下提升python性能的小技巧,这些技巧在工作和学习中算是非常实用了。接下来文字和简明扼要,直接告诉大家如何高性能使用python,不会涉及到基础知识没比如元组和列表的区别等,需要读者有一定的python基础和算法基础。 列表和元组的选择 他俩的区别我就不再赘述,就使用情况来看,列表是动态的,元组是静态的,想必大家都很喜欢使用列表吧。 但是因为列表的超额分配,列表会占用额外的内存的空间,而且初始化列表的时间大约是初始化元组的5倍,因此给大家的建议是, 凡是需要存储不会改变的事物,就是用元组吧 ,或者是说只要在适用的情况下,能用元组就用元组。 迭代器和生成器 迭代器和生成器算是python的一大特色了,迭代器和生成器可以简单理解为,需要迭代的内容不需要全部在内存中,只有在迭代完一个的时候才去生成另外一个。所以,迭代器和生成器一大好处就是节省内存。举个例子,统计10GB文本中单词的个数,显然不能把10GB文件都读到内存中,那么我们可以写如下代码: with open("test.txt","r") as fr: # 千万不要写成 data = fr.readlines(),这样就全部读到内存中了 for line in fr: pass #

用python完成排序算法

时光毁灭记忆、已成空白 提交于 2019-12-04 14:04:36
排序算法总结 冒泡排序 相邻两个元素,两两循环比较,每趟筛选出一个最大或者最小的元素(有序区在后面) def bubble_sort(data): # 第一层循环:循环一次,代表一趟,并筛选出一个最大或最小元素 for i in range(len(data)-1): temp = True # 第二层循环:循环一次,表示相邻两个元素进行了一次比较 for j in range(len(data)-1-i): if data[j] > data[j+1]: # 相邻两个元素进行替换 data[j], data[j+1] = data[j+1], data[j] temp = False if temp: return 选择排序 将一个元素设为初始值(一般都是第一个值),循环后面每个元素与第一个元素比较,最终筛选出一个最小或最大值(有序区在前面) def select_sort(data): # 第一层循环:取出数组中的每个元素 for i in range(len(data)): temp = i # 拿取一个元素用来比较 # 第二层循环:从第i后面的一个值开始循环,与data[i]进行比较 for j in range(i+1,len(data)): if data[j] < data[temp]: data[temp], data[j] = data[j], data[temp

OpenCV-Python教程简介 | 一

妖精的绣舞 提交于 2019-12-04 13:26:00
OpenCV OpenCV由 Gary Bradsky 于1999年在英特尔创立,第一版于2000年问世。 Vadim Pisarevsky 加入Gary Bradsky,一起管理英特尔的俄罗斯软件OpenCV团队。2005年,OpenCV用于Stanley,该车赢得了2005年DARPA挑战赛的冠军。后来,在Willow Garage的支持下,它的积极发展得以继续,由Gary Bradsky和Vadim Pisarevsky领导了该项目。OpenCV现在支持与计算机视觉和机器学习有关的多种算法,并且正在日益扩展。 OpenCV支持多种编程语言,例如C++、Python、Java等,并且可在Windows、Linux、OS X、Android和iOS等不同平台上使用。基于CUDA和OpenCL的高速GPU操作的接口也正在积极开发中。 OpenCV-Python是用于OpenCV的Python API,结合了OpenCV C++ API和Python语言的最佳特性。 OpenCV-Python OpenCV-Python是旨在解决计算机视觉问题的Python专用库。 Python是由 Guido van Rossum 发起的通用编程语言,很快就非常流行,主要是因为它的简单性和代码可读性。它使程序员可以用较少的代码行表达想法,而不会降低可读性。 与C/C++之类的语言相比

Python 十大装 B 语法解析

大兔子大兔子 提交于 2019-12-04 11:30:45
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码 B 格,使之看上去更老练,读起来更优雅。 一、 for - else 什么?不是 if 和 else 才是原配吗? No ,你可能不知道, else 是个脚踩两只船的家伙, for 和 else 也是一对,而且是合法的。十大装 B 语法, for-else 绝对算得上南无湾!不信,请看: >>> for i in [1,2,3,4]: print(i) else: print(i, ' 我是 else') 4 我是 else 如果在 for 和 else 之间(循环体内)有第三者 if 插足,也不会影响 for 和 else 的关系。因为 for 的级别比 if 高, else 又是一个攀附权贵的家伙,根本不在乎是否有 if ,以及是否执行了满足 if 条件的语句。 else 的眼里只有 for ,只要 for 顺利执行完毕, else 就会屁颠儿屁颠儿地跑一遍: >>> for i in [1,2,3,4]: if i > 2: print(i) else: print(i, ' 我是

小白学 Python(21):生成器基础

一笑奈何 提交于 2019-12-04 10:24:40
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变量基础操作 小白学 Python(5):基础运算符(上) 小白学 Python(6):基础运算符(下) 小白学 Python(7):基础流程控制(上) 小白学 Python(8):基础流程控制(下) 小白学 Python(9):基础数据结构(列表)(上) 小白学 Python(10):基础数据结构(列表)(下) 小白学 Python(11):基础数据结构(元组) 小白学 Python(12):基础数据结构(字典)(上) 小白学 Python(13):基础数据结构(字典)(下) 小白学 Python(14):基础数据结构(集合)(上) 小白学 Python(15):基础数据结构(集合)(下) 小白学 Python(16):基础数据类型(函数)(上) 小白学 Python(17):基础数据类型(函数)(下) 小白学 Python(18):基础文件操作 小白学 Python(18):基础文件操作 小白学 Python(19):基础异常处理 小白学 Python(20):迭代器基础 生成器 我们前面聊过了为什么要使用迭代器,各位同学应该还有印象吧(说没有的就太过分了)。

python中的函数递归和迭代问题

倖福魔咒の 提交于 2019-12-04 09:26:54
一、递归 1、递归的介绍 什么是递归?    程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法, 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量 。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。   递归要注意的是,它是直接或间接调用自身,所以在使用递归时,必须有一个明确的递归结束条件,称为递归出口,否则,他就会陷入死循环。 尾递归   具体可以看一下博客 https://blog.csdn.net/ialexanderi/article/details/81482878   如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是尾递归。尾递归函数的特点是在回归过程中不用做任何操作,这个特性很重要,因为大多数现代的编译器会利用这种特点自动生成优化的代码。 python不是一门函数式编程语言,本身不支持尾递归(没有对尾递归做优化)