Leetcode —「蓄水池采样」系列题解
给定一个无限的数据流,要求随机取出 k 个数。也就是说当数据流有 N 个数据时,不论 N 为多少,每个数被取出的概率都为 k / N。
先取出前 k 个数;
从第 k + 1 开始,以 k / i 的概率取出这个数,并随机替换掉之前已经取出的 k 个数中的一个。
随机数索引
Leetcode - 398 Random Pick Index (Medium)
题目描述:给定...
Java - equals() 和 hashCode()
一、equals() 的作用
equals() 的作用是 用来判断两个对象是否相等。
equals() 定义在 JDK 的 Object.java 中。通过判断两个对象的地址是否相等(即,是否是同一个对象)来区分它们是否相等。
public boolean equals(Object obj) {
return (this == obj);
}
既然 Object.java...
剑指Offer - Java题解 「下」
48. 最长不含重复字符的子字符串
Code It Now!!!
题目描述:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
解题思路:滑动窗口,Map 记录字符出现的位置,判断是否重复。
public int lengthOfLonges...
Spring — 控制反转 IoC
一、基本概念
1. IoC 是什么
IoC - Inversion of Control,即「控制反转」,不是什么技术,而是一种设计思想。
在 Java 开发中,IoC 意味着将你设计好的对象交给容器控制,而不是传统的在对象内部直接控制。
谁控制谁,控制什么: 传统 Java SE 程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而 Io...
计算机网络 — 基础知识
一、OSI 与 TCP/IP 各层的结构与功能
物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。
数据链路层:负责建立和管理节点间的链路。
网络层:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。
传输层:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。
会话层:向两个实体的表示层提供建立和使用连接的方法。
表示层:处理用户信息的表示问...
剑指Offer - Java题解 「中」
26. 树的子结构
Code It Now!!!
题目描述:输入两棵二叉树 A 和 B,判断 B 是不是 A 的子结构。(约定空树不是任意一个树的子结构)
解题思路:先序遍历,包含判断。
public boolean isSubStructure(TreeNode A, TreeNode B) {
if (A == null || B == null) return fals...
MySQL — 存储引擎
简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。
在 MySQL 中有很多存储引擎,可以通过 SHOW ENGINES 语句来查看,主要的存储引擎有:InnoDB、MuISAM 和 Memory。
一、InnoDB
是 MySQL 默认的事务型存储引擎,只有在需要它不支持的特性时,才考虑使用其它存储引擎。
实现了四个标准的隔离级别,默认级别是可重复读(REPEATABLE...
MySQL — 索引
一、什么是索引?
索引(Index)是帮助 MySQL 高效获取数据的数据结构。
索引的应用在生活中很常见,例如图书的目录、词典等,都是通过不断的缩小想要获得数据的范围来筛选出最终想要的结果。
二、索引的数据结构
数据库中的数据是存储在磁盘中的,磁盘 IO 是十分高昂的操作,所以每次查找数据的时候需要把磁盘 IO 控制在一个很小的数量级,由此就引出了 B/B+ 树的数据结构。
B ...
共计 85 篇文章,11 页。