想进大厂的小肥羊
想进大厂的小肥羊
全部文章
基础算法
Java(5)
Linux学习笔记(6)
SpringBoot(1)
设计模式(2)
归档
标签
去牛客网
登录
/
注册
想进大厂的小肥羊
备战春招100天
全部文章
/ 基础算法
(共8篇)
基础算法-哈希表
哈希方式 取余,y mod x 注意(x最好取质数) 存储结构 开放寻址法 当哈希碰撞发生时,从发生碰撞的那个单元起,按照一定的次序,从哈希表中寻找一个空闲的单元,然后把发生冲突的元素存入到该单元。 int find(int x){ 如果x存在,返回x的坐标,否则返回x应该存的位置 } 拉链法 ...
哈希
2021-11-15
0
353
基础算法-堆
堆 介绍 堆是一颗完全二叉树,树中每个节点的值的小于等于左右孩子的节点的值(小根堆)。 存储 堆使用一维数组heap[]搭建。节点从1开始,对于任意一个节点x,他的左孩子为2x,右孩子为2x+1。 操作 up(x) 向上调整x的位置,使之处于正确的位置。 down(x) 向下调整x的位置,使之处于正...
优先队列
堆
2021-11-15
0
374
基础算法-字典树
Trie 主要是需要一个二维数组int[x][y]保存字典树。用一个一维数组保存该节点是否是字符串的结尾。 例题: https://www.acwing.com/problem/content/837/ 代码: import java.io.*; public class Main{ ...
Trie
字典树
2021-11-13
0
436
基础算法-数据结构
数据结构 单链表(静态链表) 双链表(静态双链表) 思路: 初始化 例题: 模拟栈、队列 例题 KMP 单链表(静态链表) 利用两个数组,模拟单链表,e[i]表示第i个节点的值,ne[i]表示第i个节点的下一个节点坐标。 idx表示当前以及用到了那个点,he...
数据结构
KMP
2021-11-09
1
473
基础算法-离散化
题目地址 区间和 问题 求区间和可以用前缀和,但坐标范围太大了,无法创建这么大的数组(会有很多用不到的无效空间)。 解决方法 将所有坐标映射为从0开始的自然数。 思路 将所有可能用到的坐标进行排序、去重得到一个映射数组。数组中的值保存的是坐标的值。利用二分查找可以快速找到坐标对应的数组下标。 实现 ...
离散化
2021-11-07
0
392
基础算法-双指针
双指针 双指针 最长连续不重复子序列 数组元素的目标和 判断子序列 双指针 顾名思义,两个指针,一般分为左指针和右指针。通过发现某些规律,减小时间复杂度。一般可以将O(n^2)的算法优化到O(n)。双指针的应用非常多,包括归并排序中的归并过程,快速排序中的分割过程。 最长连续不重复子序列...
双指针
2021-11-04
0
496
基础算法-二分算法
二分算法 二分 整数二分 模板 浮点数二分 二分 整数二分 整数二分分为两种,一种找最左边的,一种找最右边的。 模板 最左边 public int search (int[] nums, int target) { if(nums == null || nums.leng...
二分
2021-11-02
0
392
基础算法-排序
排序算法 排序 快速排序 思路: 实现: 归并排序 思路: 实现: 排序 快速排序 快速排序是排序算法中平均时间复杂度为O(nlogn)的一种算法。 思路: 从数组中选择一个数字,使得该数字左面都是小于该数字的数,右面都是大于该数字的数。再分别对该数字的左半部分和右半部分...
排序
快速排序
归并排序
2021-11-02
0
411