算法学习系列
ICoder_Next
数学抽象世界,物理改变世界
展开
-
笔试算法准备系列——排序比较器在数组、字符串中的使用
分别比较在int[]数组、Integer[]数组、String数组、list集合中使用Java中常用的排序工具类:public class TestComparator { /** * 测试不同情况下的比较器使用 */ public static void main(String[] args) { //测试comparator的使用 System.out.println("对int[]数组进行排列: "); int[]原创 2020-08-17 09:24:38 · 233 阅读 · 0 评论 -
位运算总结(刷题)
文章目录1.二进制中1的个数2.求一个数是不是2的幂次方3.来个小结3.1 与、或、异或的运算规律总结3.2 左移运算符"<<" 与右移运算符">>"4.继续刷题:不用额外的变量交换两个整数的值(异或应用)5. 不用任何比较判断找出两个数中较大的数6. 只用位运算不用算术运算实现整数的加减乘除运算1.二进制中1的个数请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。输入原创 2020-06-16 19:47:45 · 645 阅读 · 0 评论 -
算法——链表相关的记录
文章目录将一个数组中的所有数添加到一个单向链表中具体的添加将一个数组中的所有数添加到一个单向链表中刷LeetCode第二题的时候出的问题:public static ListNode addTwoNumber(ListNode node1, ListNode node2){ Stack<Integer> stack = new Stack<>(); ...原创 2020-02-10 21:48:33 · 82 阅读 · 0 评论 -
算法学习系列(10)—— 图算法
文章目录1.图的存储方式1.1 有向图与无向图1.2 图的存储方式一:邻接表1.图的存储方式1)邻接表2)邻接矩阵如何表达图?生成图?1.1 有向图与无向图有向图:无向图:1.2 图的存储方式一:邻接表...原创 2020-02-08 19:44:18 · 265 阅读 · 0 评论 -
算法学习系列(9)—— 递归与动态规划
文章目录1.介绍递归和动态规划1.1 引入题目:n!1.2 经典的汉诺塔问题1.3 打印一个字符串的全部子序列,包括空字符串1.4 打印一个字符串的全部排列1.5 母牛生母牛问题2.动态规划2.1返回二维数组的最小的路径和2.2.数组与目标数1.写出尝试(递归)版本2.分析可变参数,哪几个可变参数的值能代表返回状态,几个可变参数,就构造几维表。3.看base case,列出不依赖的位置。4.分析一...原创 2020-02-07 16:41:06 · 354 阅读 · 0 评论 -
算法学习系列(8)—— 前缀树以及贪心算法、中位数问题
文章目录1.介绍前缀树1.1 何为前缀树:1.2 前缀树相关的问题1.介绍前缀树[问题] 何为前缀树? 如何生成前缀树?1.1 何为前缀树:直接举例说明:先给定一个字符串:abc,建立一棵树,从头结点有走向a的路不?没有就见一个节点,a加在该路径上,然后b也加在后边,c继续。当再给一个字符串be的时候,从头节点开始没有通向b的路,所以重新建节点,再建路,bce添加上去。然后对于abd,有...原创 2020-02-06 11:15:15 · 337 阅读 · 0 评论 -
算法学习系列(7)——哈希表、布隆过滤器、一致性哈希、岛问题、并查集
文章目录1.认识哈希函数和哈希表1.1什么是 Hash1.2为什么要有 Hash1.3举个栗子:1.使用数组存储,需要新建个数组 new int[]{2,5,9,13},然后需要写个循环遍历查找:2.而假如存储时先使用哈希函数进行计算,这里我随便用个函数:1.4哈希函数1.5 哈希函数的特点:1.6 哈希表常用的功能演示2.设计RandomPool结构3.认识布隆过滤器(搜索面试中必考题目)3.1...原创 2020-02-04 15:55:11 · 431 阅读 · 0 评论 -
算法学习系列(6)——树以及常见的面试题、先(中、后)序遍历
文章目录1.实现二叉树的先序、中序、后序遍历,包括递归方式和非递归 方式2.实现直观地打印一颗二叉树3.在二叉树中找到一个节点的后继节点1.实现二叉树的先序、中序、后序遍历,包括递归方式和非递归 方式更多图借鉴:二叉树的 先序遍历、中序遍历、后序遍历public class Code_01_PreInPosTraversal { public static class Node ...原创 2020-02-02 22:16:50 · 206 阅读 · 0 评论 -
算法学习系列(5)——关于栈,队列,链表的几道面试题
入门基础41.用数组结构实现大小固定的队列和栈1.0 经典数据结构(队列(queue)、栈(stack)、链表1.用数组结构实现大小固定的队列和栈1.0 经典数据结构(队列(queue)、栈(stack)、链表...原创 2020-01-31 10:02:25 · 353 阅读 · 0 评论 -
算法学习系列(4)——栈,队列,链表
入门基础41.用数组结构实现大小固定的队列和栈1.0 经典数据结构(队列(queue)、栈(stack)、链表(linkedList)、数组)1.0.1队列(双向链表)1.0.2 栈1.0.3链表1.0.4 链表与队列区别1.2 使用数组结构实现大小固定的队列和栈【面试重点】1)栈的实现2)队列的实现(比栈就多了两个参数)2.栈(队列)的经典应用【面试】1)实现一个特殊的栈,在实现栈的基本功能的...原创 2020-01-09 15:04:36 · 195 阅读 · 0 评论 -
算法学习系列(3)—— 算法稳定性、比较器、计数排序、桶排、基数排序
入门基础31.算法稳定性概念与排序汇总1)概念:2)分类3)时间复杂度与空间复杂度的汇总表4)工程中的综合排序算法5)笔试/面试问题6)有关排序问题的补充2. 比较器3.桶排序、计数排序、基数排序3.1先来个案例说明计数排序:3.2 桶排序3.3 桶排序概念的实际应用【面试】3.4 基数排序基本思想复杂度分析1.算法稳定性概念与排序汇总先上个图,简单理解:1)概念:① 定义:能保证两...原创 2020-01-08 16:59:57 · 270 阅读 · 0 评论 -
算法学习系列(2)——荷兰国旗问题,快排,堆排,树
入门基础21.荷兰国旗问题(用的是快排思想)2.快速排序1.荷兰国旗问题(用的是快排思想)提法1:给定一个数组arr,和一个数num,请把小于等于num的数放在数组的左边,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N)提法2:给定一个数组arr,和一个数num,请把小于num的数放在数组的:左边,等于num的数放在数组的中间,大于num的数放在数组的右边。要...原创 2020-01-07 19:57:47 · 435 阅读 · 1 评论 -
算法学习系列(1)——时间复杂度,冒泡,选择,插入,归并排序,小和问题,逆序对
入门基础11.时间复杂度2.典型排序算法的时间复杂度1) 冒泡排序的时间复杂度O(N2N^{2}N2)2).选择排序的算法复杂度O(N2N^{2}N2)3).插入排序3.对数器(设计评价算法正确与否的工具)4.递归的理解(分治思想)5.递归算法的经典算例5.1 归并排序5.2 笔试常用——小和问题5.2 笔试常用——逆序对问题1.时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是...原创 2020-01-06 16:38:43 · 268 阅读 · 0 评论