算法
不贪吃的猪
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python 堆排序模板
# 调整某一个节点到具体的位置,确保堆顶为最大值,时间复杂度为logn def heapify(arr, idx, end): # size = len(arr) left = idx * 2 + 1 right = left + 1 while left <= end: # 当前节点非叶子结点 max_idx = idx if arr[left] > arr[max_idx]: max_idx = le.原创 2020-12-24 21:29:08 · 316 阅读 · 0 评论 -
从长度为n的数组中,找到任意重复数字,重复数字范围为【0,n-1】
''' 一个萝卜一个坑,如果出现两个萝卜抢一个坑,则必定重复, 如果萝卜已经在对应坑中,则index++ 如果当前坑的萝卜不对应,则直接把它送到对应坑里面 在这个代码中,会在第一个坑停留很久,如果重复,肯定会直接在第一个坑就发现。 ''' class Solution: def findRepeatNumber(self, nums) -> int: i = 0 while i < len(nums): if nums[i] .原创 2020-12-16 20:44:26 · 267 阅读 · 0 评论 -
根据二叉树的先序和中序数组直接生成后续数组
# 思路,根据先序遍历中,第一个数字为根, # 根据根节点数字在中序遍历中找到其index,index左边的都是左子树,右边的都是右子树,记录左子树个数 # 先序遍历的第一个根,就是在后序遍历最后一个位置,根据算出的左子树个数,划分先序和后续数组的左右子树index # 递归 def findorder(preorder, inorder): presize = len(preorder) res = [0] * presize findordersub(preorder, 0, .原创 2020-12-16 20:37:08 · 401 阅读 · 0 评论 -
rand5 生成 rand7
import random def rand5(): return random.randint(0, 4) def rand7(): n = 22 while n > 21: n = 5 * rand5() + rand5() # 保证每个数字等概率出现,范围是【0,24】 return n % 7 # 增加生成成功率 print(rand7()) ...原创 2020-12-16 20:32:11 · 562 阅读 · 0 评论
分享