![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向面试学习
桂江
这个作者很懒,什么都没留下…
展开
-
剑指奥否 n个骰子的点数
题目思路代码class Solution: def dicesProbability(self, n: int) -> List[float]: dp = [[0 for x in range(6*n)] for x in range(n)] for j in range(0,6): dp[0][j] = (1) for i in range(1,n): for j原创 2021-04-17 14:05:55 · 71 阅读 · 0 评论 -
剑指奥否 判断平衡二叉树
题目思路最小问题:如果一个树左子树和右子树深度差超过2则不是平衡树。那么通过后续遍历得到每个节点的深度,自底向上返回,如果出现高度差超过2则返回False代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Sol原创 2021-04-15 00:29:37 · 172 阅读 · 0 评论 -
剑指奥否 二叉搜索树的第 k 大节点
题目思路代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def kthLargest(self, root: TreeNode, k: int) -> int:原创 2021-04-14 23:00:28 · 62 阅读 · 0 评论 -
剑指奥否 链表 两数相加
题目思路每层节点相加有两种结果,产生进位或不产生进位。因此我们每次处理一层的值和来自上层的进位(第一层初始化为0);当有一条链为空另一条链不为空时,我们将空的链用一个默认节点代替;当两条链皆为空时说明相加结束,这时如果有进位则返回进位值的节点否则返回空节点。代码# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val =原创 2021-04-14 11:02:30 · 76 阅读 · 0 评论 -
剑指奥否 二叉树
class Solution: def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode: def recur(preorder,inorder,root,left,right,dic): if left>right:return node=TreeNode(preorder[root]) i=dic[preo.原创 2021-04-11 16:11:38 · 95 阅读 · 0 评论 -
剑指奥否 二分查找
class Solution: def minArray(self, numbers: List[int]) -> int: if not numbers: return left=0 right=len(numbers)-1 while(left<right): mid=left +(right-left)//2 if(numbers[mid]&l.原创 2021-04-11 15:01:15 · 56 阅读 · 0 评论 -
剑指奥否 位运算 面试题65
剑指奥否位运算很喜欢评论区的一条评论:“我是xx”首先回顾一下数电的基础计算机中存储数值,都是以二进制补码的形式存入的,正数的补码是他本身,负数的补码是反码加一。回顾下Python的位运算符print(hex(1)) # = 0x1 补码print(hex(-1)) # = -0x1 负号 + 原码 ( Python 特色,Java 会直接输出补码)print(hex(1 & 0xffffffff)) # = 0x1 正数补码print(hex(-1 & 0xfffff原创 2021-04-02 15:13:41 · 90 阅读 · 0 评论 -
凉经2021年4月1日
“我看你学的是机器学习,来投的开发”“请问你还要继续面下去吗”“哦那好,我们继续”数据库:Mysql默认数据隔离级别Mysql默认引擎。ACID为什么用B+树,为什么不用红黑树。怎么优化索引数据结构数组链表区别动态规划、图计算机网络TCPIP timewaitHTTPs与HTTP区别,过程TCP的滑动窗口http长连接短链接HTTP是可靠的吗。如何在系统上查看TCP链接状态Python面向对象多态的概念序列化用过django吗如何解决哈希冲突装.原创 2021-04-01 19:29:55 · 56 阅读 · 0 评论 -
剑指奥佛 链表
class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def reverseList(self, head: ListNode) -> ListNode: self.Pre=None self.cur=head if not head: return None .原创 2021-03-15 22:17:12 · 93 阅读 · 0 评论 -
PYTHON LRU 缓存机制
哈希表+双向数组。哈希表查找O(1)。链表修改O(1)更新用双链表描述,最新使用的节点放在链表尾。对链表的基本操作两种:从链表删除一个节点,增加一个节点到链表通过这两种操作组合我们可以实现:去掉头节点移动一个节点到链表尾:先删除这个节点,再加入这个节点添加一个节点class DoubleLinkList: def __init__(self,key=0,value=0): self.key=key self.val=value self.原创 2021-03-15 02:12:32 · 107 阅读 · 0 评论 -
剑指Offfer练习记录 栈
没什么说的常规两个列表当做栈,既然是栈就不能用pop(0)这种操作。class CQueue: def __init__(self): self.stackA=[] self.stackB=[] def appendTail(self, value: int) -> None: self.stackA.append(value) def deleteHead(self) -> int.原创 2021-03-13 16:43:24 · 75 阅读 · 0 评论 -
排序与时间空间复杂度
简单排序 T(n) = O(n^2) S(n) = O(1)快速排序 T(n) = O(n^2) S(n) = O(logn)堆排序 T(n) = O(nlogn) S(n) = O(1)归并排序 T(n) = O(nlogn) S(n) = O(n)基数排序 T(n) = O(d(n+r)) S(n) =...原创 2021-03-12 12:31:26 · 89 阅读 · 0 评论 -
排序与时间空间复杂度2
归并排序 抄的 import java.util.Arrays;public class MergeSort {int[] array;public MergeSort(int[] array) { this.array = array;}public void sort() { int[] temp = new int[array.length];//在排序前,先...原创 2021-03-12 12:31:02 · 64 阅读 · 0 评论 -
剑指Offfer练习记录 数组类
剑指 Offer 04. 二维数组中的查找从右上角开始,如果Target比右上角大则舍弃第一行,若比右上角小舍弃最后一列。class Solution: def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool: if len(matrix)==0 or len(matrix[0])==0: return False rows=len(mat原创 2021-03-09 23:06:22 · 85 阅读 · 1 评论