就业
cxy885588
这个作者很懒,什么都没留下…
展开
-
【LeetCode】旋转数组(Python版)
三、代码实现颠倒列表弹出添加元素def rotate(nums, k): if len(nums) < 2: return #对数组进行翻转,为首端添加数据使用append做铺垫 nums.reverse() k = k % len(nums) #避免k大于nums的长度 while k > 0: #翻转后的数组,第一个数据即为原数组的最后一个数据 temp = nums.pop(0) #翻原创 2020-08-31 19:01:03 · 212 阅读 · 0 评论 -
【LeetCode】计算最大利润(Python版)
一、思路根据首次买入股票的值,与后一个数据做差值,及得到其利润。二、输出结果:7三、代码实现def maxProfit(prices): #最开始最大利润为0,许哟啊进行初始化 maxPro = 0 i = 1#若根据计算利润公式决定该值 while i < len(prices): #计算后一个值比前一个值的利润大小,负数表示负利润 profit = prices[i] - prices[i-1] if profit &原创 2020-07-15 20:37:02 · 1876 阅读 · 0 评论 -
【LeetCode】从排序数组中删除重复项(Python版)
一、思路用set(num)可以获得非重复数据,但不能保留数组的其他值,可以根据set(num)的数组,依次判断数据循环。一次判断相邻数据是否还存在相同值,若存在则将数据记录到变量中并将其后面的数组往前移动一个位置,剩下最后一个数组位置用变量值赋值。二、输出结果三、代码实现def removeDuplicates(nums): mun = set(nums) #获取不相同数据的个数 n = len(set(nums)) i = 0 while i <原创 2020-07-15 20:24:07 · 178 阅读 · 0 评论 -
【LeetCode】分块查找(Python版)
一、分块查找分块查找部需要进行整理排序,首先按照一定的取值范围将数列分成数块,块内的元素是可以无序的,但块必须是有序的,其中块的有序表示为处于后面位置中的块的最小元素都要比前面位置块中的最大元素大。二、输出结果三、代码实现import randomimport timeitdef randomList(n): iList = [] for i in range(n): iList.append(random.randrange(0,1000)) retu原创 2020-07-14 17:35:07 · 703 阅读 · 0 评论 -
【LeetCode】斐波那契查找(Python版)
一、含义斐波那契数列(Fibonacci)又称黄金分割数列,指的是这样一个数列:1,1,2,3,5,8,13,21,…在数学上,斐波那契被递归方法如下定义:F(1) = 1;F(2) = 1;F(N) = F(n-1)+F(n-2) (n>=2),该数列越往后,相邻的两个数的比值越趋于黄金比例值(0.618)。斐波那契查找就是在二分法查找的基础上根据斐波那契数列进行分割。1.1 内容...原创 2020-07-12 23:56:13 · 540 阅读 · 0 评论 -
【LeetCode】二分法查找(Python版)
一、二分法查找有一个【有序数列】中查找一个特定的数字,用顺序查找无疑是最没效率的方法了,直接找数列中间的呢个数字与被查找数(key)相比较,如果这个数字与被查找数(key)小,无疑被查找数一定是在这个有序数列的后半部分,否则被查找数一定在这个有序数列的前半部分二、输出结果三、代码实现:import randomimport timeitdef randomList(n): iList = [] for i in range(n): iList.append(r原创 2020-07-11 21:03:16 · 267 阅读 · 0 评论 -
【LeetCode】顺序查找(Python版)
一、顺序查找顺序查找属于静态查找。因为顺序查找是按照从头到尾的方法查找特定数,所以也可以不对数列进行排序,直接开始查找。为了样式的统一,这里还是采用了有序的数列。以iList数列为例,顺序查找最坏的情况需要查找len(iList)次才能找到目标或者确认数列中没有目标。二、界面输出显示三、代码实现import randomimport timeitdef randomList(n): iList = [] for i in range(n): iList.app原创 2020-07-11 14:55:20 · 231 阅读 · 0 评论 -
【LeetCode】归并排序(python版)
归并排序:首先要做的是将数列拆分成左右两个部分(最好是等分),然后将左右两个子数列排序完毕后在合并到一起就成了一个有序数列。但左右两边数列是怎么变成有序数列呢,呢就回头调用自己,再把子数列分成左右两个部分,然后把字字数列排序完毕后合并成子数列import randomimport timeitdef randomList(n): iList = [] for i in range(n): iList.append(random.randrange(0,1000))原创 2020-07-06 13:54:50 · 338 阅读 · 0 评论 -
【LeetCode】计数排序(python版)
计数排序原理:计数排序算法不直接通过比较数字的大小来确定位置,它采用一个巧妙的方法,选择一个数为基数,然后统计整个数列中有多少个数比基数小,如果有n个数比基数小,呢么基数就放到新数列的第n+1的位置上。import randomimport timeitdef randomList(n): iList = [] for i in range(n): iList.append(random.randrange(0,1000)) return iList #冒原创 2020-07-06 10:49:31 · 149 阅读 · 0 评论 -
【LeetCode】快速排序(python版)
快速排序:以列表中的任意一个数为基准(一般选取第一个数),将列表分为左右(前后)两个子列表,左边子列表的数要比基数小,右边的子列表要比基数大,然后继续把左边子列表和右边子列表按同样的方法继续分解、比较,一直分到分无可分位置,然后按照左边子列表比基数小+基数+右边子列表(比基数大)的方式连接起来,最后得到一个有序的数列import randomimport timeitdef randomList(n): iList = [] for i in range(n): i原创 2020-07-05 14:37:27 · 490 阅读 · 0 评论 -
【LeetCode】插入排序(python版)
插入排序相当于将列表数据分成左右两边,就相当于扑克牌发牌时,左拿第一张牌,右手摸牌,将右手的牌当作目标牌,与左手中的牌进行对比,使得左手中的牌从左至由,由小到大排序。即将最小的牌放在最左边import randomimport timeitdef randomList(n): iList = [] for i in range(n): iList.append(random.randrange(0,1000)) return iListdef bubble原创 2020-07-05 09:04:53 · 124 阅读 · 0 评论 -
【LeetCode】选择排序(python版)
import randomimport timeitdef randomList(n): iList = [] for i in range(n): iList.append(random.randrange(0,1000)) return iListdef bubblesort(iList): if (len(iList)<=1): return iList for i in range(1,len(iList)):原创 2020-07-05 08:29:09 · 191 阅读 · 0 评论 -
【LeetCode】冒泡排序(python版)
import randomimport timeitdef randomList(n): iList = [] for i in range(n): iList.append(random.randrange(0,1000)) return iListdef bubblesort(iList): if (len(iList)<=1): return iList for i in range(1,len(iList)):原创 2020-07-04 23:05:17 · 215 阅读 · 0 评论