![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 54
屋顶那猫
这个作者很懒,什么都没留下…
展开
-
python算法:病毒传播模型
实验一:假设病毒平均每5天1个人传染给2个人,如果不加人为控制,预测在第31天、61天的感染人数。这题比较简单,只要找出每次传播中各数据变化的规律,一层一层地算即可:get到重点每5天传播一次人数增长规律为: num = num * 2当天数不为5的倍数时,感染人数向下取。如:天数为6,感染人数仍按第五天算,2+1=3代码实现:def virus(set_day): row = 0 # 传播次数 day = 0 # 天数 num = 1 # 感染人数原创 2021-03-01 14:16:39 · 2563 阅读 · 0 评论 -
python算法:删除排序链表中的重复元素
删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。举例:如果q和q的下一个元素的值相同,直接跳过此元素,即: q.next=q.next.next这时链表变成了:这时再进行一次遍历,如果q的值与q的下一个元素的值不一致,那么q向后一位移动,q.next会自动向后一位移动:q = q.next代码如下:# Definition for singly-linked list.# class ListNode:# def __init__(原创 2020-07-04 18:41:19 · 1321 阅读 · 0 评论 -
python算法:加一
加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。这里用到了递归的方法,最后一个元素加一,如果最后一个元素加一之后大于9,就进位:本位归零,上一位加一,再检测上一位,如果上一位加一后大于9…只要前一位不大于9,就退出递归class Solution: def plusOne(self, digits: List[int]) -> List[int]:原创 2020-06-22 17:28:49 · 1323 阅读 · 0 评论 -
python算法:最后一个单词的长度
最后一个单词的长度def lengthOfLastWord(self, s: str) -> int: str = s.split(" ") # 以空格分割字符串,并返回一个列表 p = len(str) - 1 while p + 1: if str[p] == '': # 当最后一个元素为空时,删掉 str.pop(p) p =原创 2020-06-16 18:19:12 · 440 阅读 · 0 评论 -
python算法:最大子序和
最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。办法有很多,可是我却偏偏想到最笨的一个 -_-||这个办法的主要思想就是,不断地遍历列表并累加,当大于res时,将res替换成该最大值,遍历完一次后,把头元素去掉,继续遍历class Solution: def maxSubArray(self, nums: List[int]) -> int: res = nums[0] # res用来保存最大原创 2020-06-15 17:58:54 · 241 阅读 · 0 评论 -
python算法:外观数列
外观数列「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:这道题除了递归还没想到其他办法,解题思想就是:写一个函数,这个函数可以按照题意生成下一个数,把这个数备份后再次扔到函数中,直到递归次数等于输入的ndef countAndSay(self, n: int) -> str: def Handle(item): p = 0 # 游标 指向元素 res = ''原创 2020-06-13 10:32:01 · 859 阅读 · 0 评论 -
python入门:继承&多继承
继承定义:子类拥有父类的所有方法和属性,子类可直接享受父类中封装好的方法语法: class 类名(父类名): Pass继承的传递性:C类继承与B类,B类继承于A类覆盖父类的方法:在子类中定义一个和父类同名的方法并实现Super()函数:在重写父类方法时,调用在父类中封装的方法实现例:def login(self): # 重写父类 super().login() # 调用原本父类的方法多继承定义:子类可以拥有多个父类,并具有所有父类的属性方法语法:class 子原创 2020-06-05 10:23:57 · 164 阅读 · 0 评论 -
python算法:实现strStr( )
实现 strStr() 函数给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。解决这个问题的主要思路是:把needle作为一个整体,从haystack索引0开始,切出和needle一样长度的字符串,比较两者是否一致,否则将索引移到下一位class Solution: def strStr(self, haystack: str, needle: str) -&g原创 2020-06-04 16:32:51 · 594 阅读 · 0 评论 -
python算法:移除元素
移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。这个题目跟之前的 “删除排序数组中的重复项” 有点类似,也没什么难度啦~python算法:删除排序数组中的重复项def removeElement(self, nums: List[int], val: int) -> int:原创 2020-05-21 11:37:49 · 283 阅读 · 0 评论 -
python算法:删除排序数组中的重复项
删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。这个问题的主要难点是,删除一个元素后,后面的元素索引会跟着改变。这里用了两个方法,都可以正常运行得到正确答案,而方法一的思路是:每删除一个元素,就从头开始重新检测一遍,这样就不用考虑索引的问题,但是因为需要频繁的重新检测,当输入的数据非常庞大的时候,这个算法的运算速度就会变得非常缓原创 2020-05-18 16:24:15 · 1531 阅读 · 0 评论 -
python算法:有效的括号
有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效有效字符串需满足:1、左括号必须用相同类型的右括号闭合。2、左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。刚开始想半天没想出来,还想着把字符串拆分。。没想到最后几行代码就搞定class Solution: def isValid(self, s: str) -> bool: while '()' in s or '[]' in s or '{}原创 2020-05-15 10:00:55 · 1120 阅读 · 0 评论 -
python算法:最长公共前缀
最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 “”。class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: list1 = strs list2 = [] list3 = [] flat = True f = 1 while(1): fo原创 2020-05-15 00:20:31 · 705 阅读 · 0 评论 -
python算法:罗马数字转整数
class Solution: def romanToInt(self, s: str) -> int: num1 = s num2 = 0 list1 = [] m = 0 for n in num1: #把输入的字符串拆分,并转换为对应的数字存入列表 if n == 'V': list1.append(5) if n ==...原创 2020-05-14 17:49:52 · 752 阅读 · 0 评论 -
python算法:回文数
判断一个整数是否是回文数,回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数重点来了:不将整数转为字符串下面这个方法比较笨哈哈,但是也比较好理解吧~class Solution: def isPalindrome(self, x: int) -> bool: num1 = x num2 = 0 num3 = num1 if num1 < 0 : #如果输入为负数,肯定不是回文数原创 2020-05-14 13:56:02 · 2063 阅读 · 0 评论 -
python算法:整数反转
题目:给出一个 32 位的有符号整数,将这个整数中每位上的数字进行反转import mathclass Solution: def reverse(self, x: int) -> int: rou1 = -2 **31 rou2 = 2 **31 list = [] num3 = 0 flat = False if x < 0 : x = x原创 2020-05-13 10:48:33 · 1436 阅读 · 0 评论 -
python算法:两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。nums = [3,2,4]target = 6lens = len(nums)for m in range(lens): for x in range(lens): x == m+1 if(m == x): continue原创 2020-05-12 19:00:01 · 1357 阅读 · 0 评论 -
python入门:私有属性/方法
私有属性/方法如果不希望属性或方法函数外部被访问,那么就可以使用私有属性/方法定义的方式为:在属性/方法前加双下划线 __例:class Student: def __init__(self, name): #初始化 self.name = name self.__age = 16 #私有化属性 def info (self): print("%s的年龄是%d" %(self.name, self.__age)) #此处可以正常使用age属性xiaoming = Studen原创 2020-05-12 13:33:00 · 159 阅读 · 0 评论 -
python入门:递归
定义:一个函数内部调用自己特点:参数不同,结果不同当参数满足一个条件时,函数不再执行(非常重要,否则会产生死循环)def sun_num(num): if(num == 0): return sor = sum_num(num-1) return sor + num 这里实现了一个简单的递归,不断地调用自己,直到num为0...原创 2020-04-27 17:21:17 · 140 阅读 · 0 评论 -
python入门:多值参数、拆包
在定义函数时,参数名前面:增加一个 * 表示接收一个元组增加两个 * 表示接收一个字典例:def info(num1, *num2, **num3):调用函数info(0,1,2,3,color = "red")这样调用函数传入情况是这样的:num1 : 0num2 :(1,2,3)num3 :{color = “red”}如果我们把函数改成:def info( *...原创 2020-04-27 17:05:08 · 232 阅读 · 0 评论 -
python入门:缺省函数
定义:给某个函数指定一个默认值,具有默认值的函数,就叫做缺省函数调用缺省函数时,如果没有传入值,就使用默认值def Get_info(name, gender = True): gender_test = "man" if not gender: gender_test = "woman"这里的gender默认是man,如果只传入一个参数,就使用默认值缺省参数应该放在所有参数的最后...原创 2020-04-27 16:34:31 · 871 阅读 · 0 评论 -
python入门:形参和实参
def sum(num1, num2) result = num1 + num2 print("%d + %d = %d" %(num1, num2, result)) return result这里的num1、num2就是形参接下来我们调用这个函数sum(1,2)//这里的1,2就是实参可以用一个变量去接收结果sum_res = sum(2,1)...原创 2020-04-27 16:18:59 · 201 阅读 · 0 评论 -
python入门:自定义函数以及调用函数
//新建一个py文件,名为Lin_01.py//在该文件中自定义一个函数def Lin_table(): print("我是自定义函数"); //新建另一个py文件import Lin_01 //导入我们前面创建的文件Lin_01.Lin_table() //使用函数//函数调用一定要在import上方``当然,直接在同一文件中定义函数、使用函数也是可以的,...原创 2020-04-27 16:09:28 · 851 阅读 · 0 评论