摘要: 从ReentrantLock到AQS的分析 ReentrantLock的主要方法: 1、lock():获取锁,没获取到会阻塞(Sync定义的抽象方法) 2、unLock():释放锁(ReentrantLock定义的方法) 3、tryLock():内部调用nonfairTryAcquire(1)以非公 阅读全文
posted @ 2021-10-17 17:29 菠萝机 阅读(32) 评论(0) 推荐(0) 编辑
摘要: java.exe至少有三个线程:一个main()主线程,一个GC线程(守护线程),一个异常处理线程 一、创建多线程的三种方式 1、通过继承Thread类(Thread实现了Runnable接口),重写run()方法; 2、通过实现Runnable接口的run()方法; 3、通过实现Callable接 阅读全文
posted @ 2021-09-14 17:49 菠萝机 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 单向链表: 双向链表: 单向链表的一些理解: 通过定义一个节点类Node来表示链表结点,每个结点是这个类的一个对象 这个类包括一个Node类型的属性next用来保存下一个节点的地址,包括一个属性data用来保存这个节点的数据 如果这个链表是无环的,则最后一个节点的next为null 下面是单向链表的 阅读全文
posted @ 2021-09-08 21:19 菠萝机 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 问题:如何找到一串数据中最大的M个数或者最小的M个数? 答:可以构造一个包含M个数的堆或者直接将这串数据构造成一个堆 大根堆:父节点大于等于两个子节点,可以使用数组构造堆, 1、从下标为1的位置开始存储;第k个位置的父节点:k/2,子节点位置: 2k 和 2k+1 2、从下标为0的位置开始存储,第k 阅读全文
posted @ 2021-09-08 21:18 菠萝机 阅读(30) 评论(0) 推荐(0) 编辑
摘要: leetcode 总结 1.冒泡排序 # 冒泡排序;对相邻的进行比较,把大的往后放,第一轮循环下来可以找到最大的,时间复杂度为O(n^2) def bubble_sort(arr): for i in range(len(arr)): for j in range(len(arr)-1-i): if 阅读全文
posted @ 2021-09-08 21:17 菠萝机 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 顺序查找的时间复杂度最糟为O(n),而二分查找的时间复杂度为O(log n)1、非递归 def binary_search(arr, item): low = 0 high = len(arr)-1 while low<=high: # 当左指针大于右指针的时候,则说明没找到,结束循环 mid = 阅读全文
posted @ 2021-09-08 21:07 菠萝机 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 满二叉树:除叶子节点外,每个节点都有两个子节点 完全二叉树:叶子节点都在最底下两层,并且最后一层的叶子节点都靠左排列,除了最后一层,其它层的每个节点的子节点个数都要为2 完全二叉树有一个好处就是可以直接用数组存储,不需要额外的空间来存储左右叶子结点的引用; 平衡二叉树:左右子树的高度差小于等于1 二 阅读全文
posted @ 2021-09-08 21:07 菠萝机 阅读(78) 评论(0) 推荐(0) 编辑
摘要: leetcode题源:实现strStr() KMP算法的讲解 给定一个text字符串,和一个pattern字符串,找出pattern字符串在text字符串中开始的位置,如果不能匹配到,则返回-1; 在使用普通的双指针进行匹配时,如果匹配失败,则text指针要回到匹配开始位置的下一位置再进行下一轮匹配 阅读全文
posted @ 2021-09-08 21:07 菠萝机 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 1、Alias采样 leetcode 528:按权重随机选择 学习来源: 1、时间复杂度O(1)的离散采样算法——Alias method 2、Alias采样算法 程序实现 import numpy as np def alias_setup(probs): K = len(probs) q = n 阅读全文
posted @ 2021-08-30 22:46 菠萝机 阅读(254) 评论(0) 推荐(0) 编辑
摘要: networkx homepage 1.一些基础方法和属性 import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() # 创建空的无向图 # G = nx.DiGraph() # 创建空的有向图 # G = G.to_u 阅读全文
posted @ 2020-08-14 16:27 菠萝机 阅读(5183) 评论(0) 推荐(0) 编辑