- 博客(6)
- 问答 (1)
- 收藏
- 关注
原创 链式前向星
我们首先来看一下什么是前向星.前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置和存储长度,那么前向星就构造好了。用len[i]来记录所有以i为起点的边在数组中的存储长度。用head[i]记录以i为边集在数组中的第一个存储位置。那么对于下图:我们输入边的顺序为:1 22 33 41 34 11 5...
2022-02-04 13:54:59 77
原创 字符串Hash+前缀和
概念:将字符串映射为一个Hash值注意:做到严格的进行计数的「哈希表」就不能是以String作为key,只能使用Integer(也就是 hash 结果本身)作为key。因为 Java 中的String的hashCode实现是会对字符串进行遍历的,这样哈希计数过程仍与长度有关,而Integer的hashCode就是该值本身,这是与长度无关的。class Solution { int N = (int)1e5+10, P = 131313; int[] h =...
2022-01-28 16:43:39 1001
原创 最短路径的模板-摘自宫水三叶
leetcode 743题一、存图方式1、邻接矩阵int[][] w = new int[N][N];void add(int a, int b, int c){ w[a][b] = c;}2、邻接表(链式前向星存图)int[] head = new int[N]; //存储某个结点所对应边集合(链表)中最后一条边的头结点在数组中的位置int[] edge = new int[M]; //某条边指向的另一个结点int[] next = new int[M]; //以
2022-01-24 22:52:51 601
原创 二分查找的魔鬼细节
1、寻找一个数(基础的二分查找)int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; // 注意 while(left <= right) { // 注意 int mid = (right + left) / 2; if(nums[mid] == target) return mid;
2022-01-08 13:30:00 194
原创 Java 常见的代码规范
1、构造器参数太多引入Builder模式场景:当构造器有5个以上的构造参数或者目前参数不多但是以后会不断增加的情况。public class Computer{ protected String mBoard; protected String mDisplay; protected String mOs; static class Builder{ protected String mBoard; protected Strin
2022-01-07 20:46:53 431
空空如也
通过url加载workbench中创建好的发布好的drl文件报错
2020-10-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人