摘要:
AbstractRoutingDataSource 实现动态数据源切换原理简单分析 写在前面,项目中用到了动态数据源切换,记录一下其运行机制。 代码展示 下面列出一些关键代码,后续分析会用到(通过下面的代码即可实现基本的动态数据源切换) 数据配置 @Configuration @PropertySo 阅读全文
摘要:
写在前面:该系列按照标签进行刷题,参考 "leetcode标签" [TOC] 广度优先搜索 BFS 1091.二进制矩阵中的最短路径 在一个 N × N 的方形网格中,每个单元格有两种状态:空(0)或者阻塞(1)。 一条从左上角到右下角、长度为 k 的畅通路径,由满足下述条件的单元格 C_1, C_ 阅读全文
摘要:
[TOC] 写在前面:本随笔是剑指Offer系列最后一篇。后续会记录一些Java、Spring、数据库、分布式等方面的内容。 61.序列化二叉树 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉 阅读全文
摘要:
[TOC] 56.删除链表中重复的结点 🔺 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1 2 3 3 4 4 5 处理后为 1 2 5 添加头结点 ,作为辅助,便于剔除第一个和第二节点就相等的情况; 递归。都需要考虑开头就出现两节点 阅读全文
摘要:
[TOC] 51.数组中重复的数字 在一个长度为n的数组里的所有数字都在0到n 1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2 阅读全文
摘要:
[TOC] 46.扑克牌顺子 从扑克牌随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王可以看成任意数字。 找出最大最小值,0的数量,判断最大最小值的差中的空缺数是否小于等于0的个数 1.快排: 快排超时,使用Arrays. 阅读全文
摘要:
[TOC] 41.数组中只出现一次的数字 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 暴力解:利用HashMap存储数字出现次数; 依次异或:先进行依次异或得到两个出现一次数字的异或结果,根据该结果进行分组,然后每一组进行异或得到这两个数字。 1.暴 阅读全文
摘要:
[TOC] 36.数组中的逆序对 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出 。 输入描述: java public class Solution { int co 阅读全文
摘要:
[TOC] 31.连续子数组的最大和 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6 阅读全文
摘要:
[TOC] 26.复杂链表的复制 🔺 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 1.暴力: 2.三步法: 27.二叉搜索树与 阅读全文