- 博客(68)
- 资源 (9)
- 收藏
- 关注
原创 114. 二叉树展开为链表
class Solution { public void flatten(TreeNode root) { //左子树为 null,直接考虑下一个节点 while(root!=null){ if(root.left==null){ root = root.right; }else{...
2020-04-30 20:32:11 160
原创 461. 汉明距离
位运算class Solution { public int hammingDistance(int x, int y) { int xor = x^y; int count = 0; while(xor!=0){ if(xor%2==1){ count++; ...
2020-04-30 20:22:05 163
原创 103. 二叉树的锯齿形层次遍历
BFSclass Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> list = new ArrayList<>(); Queue<TreeNode&g...
2020-04-30 08:53:52 145
原创 75. 颜色分类
简单来看 ,这道题考察的就是排序算法。class Solution { /* 荷兰三色旗问题解 */ public void sortColors(int[] nums) { int p0 = 0, curr = 0; int p2 = nums.length - 1; while (curr <= p2) { if (nums[...
2020-04-28 21:51:23 169
原创 面试常问的六大排序算法(代码+动画图解)
文章目录选择排序插入排序希尔排序冒泡排序选择排序动画演示代码实现public class selectSort { public static void main(String[] args) { int[] nums = {1,5,6,2,3,4,7,8,9}; selectSort(nums); for (int n...
2020-04-27 18:47:24 1156 6
原创 结构型设计模式:代理模式(Proxy Pattern)
文章目录什么是动态代理?案例引出使用动态代理优化代码重点类和方法总结什么是动态代理?动态代理简单来说是:拦截对真实对象方法的直接访问,增强真实对象方法的功能动态代理详细来说是:代理类在程序运行时创建的代理对象被称为动态代理,也就是说,这种情况下,代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。也就是说你想获取哪个对象的代理,动态代理就会动态...
2020-04-27 08:54:30 278
原创 8种单例设计模式
单例模式有八种方式:饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(线程安全,同步代码块)双重检查静态内部类枚举//饿汉式(静态变量)class Singleton { //1. 构造器私有化, 外部能new private Singleton() { } //2.本类内部创建对象实例 private f...
2020-04-27 08:52:49 217
原创 MongoDB入门学习
Mongo中的一些概念:SQL术语/概念MongoDB术语/概念解释databasedatabase数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joins表连接,MongoDB不支持primary ke...
2020-04-27 08:51:09 165
原创 49. 字母异位词分组
class Solution { public List<List<String>> groupAnagrams(String[] strs) { if (strs == null || strs.length ==0) return new ArrayList<List<String>>(); Map&l...
2020-04-27 08:45:41 195
原创 【Redis】Redis缓存失效、雪崩、穿透、击穿、并发等难题解决方案
文章目录缓存失效缓存雪崩缓存穿透缓存击穿缓存并发热点key如何保证redis中的数据都是热点数据Redis到底是单线程还是多线程如何解决Redis缓存失效、雪崩、穿透、击穿、并发等5大难题???缓存失效出现场景:主要因素是高并发下,我们一般设定一个缓存的过期时间时。并发很高时可能会出在某一个时间同时生成了很多的缓存,并且过期时间在同一时刻,这个时候就可能引发——当过期时间到后,这些缓存...
2020-04-26 20:34:11 2566 4
原创 MySQL面试必备知识查缺补漏(一)
MySQL事务隔离级别怎么实现在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别。MVCC的全称是“多版本并发控制”,类似于乐观锁的一种实现方式。这项技术使得InnoDB的事务隔离级别下执行一致性读操作有了保证。MVCC实现:InnoDB存储引擎默认在每行记录后面保存两个隐藏的列,用来保存记录的创建时间和删除时间。这...
2020-04-26 15:21:34 400
原创 215. 数组中的第K个最大元素
class Solution { public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.length-k]; }}class Solution { public int findKthLargest(int[] nums, ...
2020-04-26 09:39:07 156
原创 328. 奇偶链表
class Solution { public ListNode oddEvenList(ListNode head) { if(head==null || head.next==null) return head; //o为奇数节点的尾结点,head为头结点 ListNode o = head; //p为偶数节点的头结点...
2020-04-25 22:01:03 118
原创 Java面试必备知识查缺补漏(一)
文章目录线程池的常用的参数和含义线程池的拒绝策略Java线程停止的几种方法和对比ThreadLocal原理ThreadLocal和Synchonized区别局部变量存在线程安全问题吗公平锁和非公平锁ReentrantLock和synchronized区别写再前面,希望大家在看下面的具体内容之前,对照目录依次询问自己是否清楚这个问题。看完之后,在对照我写的查看相关知识点。本人水平有限,有些地方写...
2020-04-25 18:33:47 461 2
原创 238. 除自身以外数组的乘积
暴力(不符合时间O(n)的时间复杂度)class Solution { public int[] productExceptSelf(int[] nums) { int[] res = new int[nums.length]; for(int i = 0;i < nums.length;i++){ int sum = ...
2020-04-24 21:52:43 188
原创 不会手写简单的RPC框架,敢说自己学过RPC?
RPC(Remote Proceduce Call 远程过程调用) 一般用来实现部署在不同机器上的系统之间的方法调用,使程序能够像访问本地系统资源一样,通过网络传输过去访问远端系统资源。基础概念远程调用分为本地调用端与远程服务端调用者根据服务接口获得对应的代理对象,然后直接调用接口的方法即可获得返回结果,可以实现像调用本地服务一样调用远程服务;本地调用端主要通过动态代理的方式来实现上...
2020-04-24 18:09:54 202 2
原创 230. 二叉搜索树中第K小的元素
class Solution { List<Integer> list = new ArrayList<>(); public int kthSmallest(TreeNode root, int k) { dfs(root); return list.get(k-1); } void dfs(TreeNo...
2020-04-23 22:21:58 114
原创 22. 括号生成
DFSclass Solution { List<String> list = new ArrayList<>(); public List<String> generateParenthesis(int n) { dfs(n,n,""); return list; } void dfs(i...
2020-04-23 21:54:01 166
原创 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4位运算class Solution { public int singleNum...
2020-04-23 16:10:18 103
原创 一文深入浅出聊聊BIO、NIO和AIO
传统的IOBIO、NIO、AIO的区别以及传统的 Socket 实现(BIO)、NIO 的Socket 实现、AIO 的 Socket 实现。IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。
2020-04-22 21:59:30 599
原创 78. 子集
class Solution { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> list = new ArrayList<>(); list.add(new ArrayList<>()); ...
2020-04-22 08:32:00 153
原创 344. 反转字符串
异或运算交换两个值 a = a^b b = a^ba = a^bb = 原来的aa = 原来的b位运算 + 双指针class Solution { public void reverseString(char[] s) { int l = 0,r = s.length-1; while(l<r){ s[l] ...
2020-04-21 21:28:06 155
原创 面试题06. 从尾到头打印链表
利用栈的特点,先进后出class Solution { public int[] reversePrint(ListNode head) { Stack<Integer> stack = new Stack<>(); while(head != null){ stack.push(head.val);...
2020-04-21 20:47:13 150
原创 409. 最长回文串
数组计数class Solution { public int longestPalindrome(String s) { int[] cnt = new int[58]; for(char c:s.toCharArray()){ cnt[c-'A'] += 1; } int ans = 0...
2020-04-20 20:35:21 171
原创 深入理解Java锁升级:无锁 → 偏向锁 → 轻量级锁 → 重量级锁
JDK1.6为了减少获得锁和释放锁所带来的性能消耗,引入了“偏向锁”和“轻量级锁”,所以在JDK1.6里锁一共有四种状态,无锁状态,偏向锁状态,轻量级锁状态和重量级锁状态,它会随着竞争情况逐渐升级。锁可以升级但不能降级,意味着偏向锁升级成轻量级锁后不能降级成偏向锁。
2020-04-18 15:30:14 11929 11
原创 HashMap的前世今生(从JDK1.7到JDK1.8)
我们都知道HashMap是线程不安全的,在多线程的环境下不建议使用它。那么,它到底是哪里线程不安全呢?HashMap在JDK1.7和1.8做了很多改变,你都知道吗?
2020-04-18 14:34:33 605
原创 Spring事务和数据库事务的藕断丝连
Spring事务和数据库事务的区别和联系你都知道吗?它们两者之间的联系你都清楚吗?通过这篇文章,希望可以让你茅塞顿开...
2020-04-18 09:54:17 267
原创 64. 最小路径和
class Solution { public int minPathSum(int[][] grid) { int m = grid.length,n = grid[0].length; int[][] dp = new int[m][n];//到对应(m,n)位置的最小值 dp[0][0] = grid[0][0]; f...
2020-04-17 21:02:43 108
原创 107. 二叉树的层次遍历 II
这道题主要要注意LinkedList 和 ArrayList 的区别,以及LinkedList 特有的方法运用。class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { LinkedList<List<Integer>> ...
2020-04-16 21:55:38 144
原创 125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: falseclass Solution { public boolean isPali...
2020-04-16 21:33:23 108
原创 83. 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3//迭代class Solution { public ListNode deleteDuplicates(ListNode...
2020-04-14 21:26:56 112
原创 一文总结Java I/O流基础知识
本文主要总结了Java的File类 ,字节流,字符流,缓冲流等基础知识,适合初学者来初步入门,也适合Java大佬们用来复习基础知识。
2020-04-14 14:15:20 206
原创 67. 二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.leng...
2020-04-13 20:40:05 104
原创 66. 加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 ...
2020-04-13 20:24:27 100
原创 38. 外观数列
*「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二" , ...
2020-04-13 20:11:33 162
原创 35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 7输出: 4示例 3:输入: [1,3,5,6], 0输出: 0二分法class Solution ...
2020-04-12 20:54:46 86
原创 21. 合并两个有序链表
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4递归class Solution { public ListNode mergeTwoLists(ListNode l1, List...
2020-04-12 20:14:49 103
原创 Spring的这些常见面试题,你都知道吗?
文章目录BeanFactory 和 ApplicationContext 有什么区别Spring Bean 的生命周期Spring IOC 如何实现说说 Spring AOPSpring AOP 实现原理动态代理(CGLIB 与 JDK)Spring 事务实现方式Spring 事务底层原理如何自定义注解实现功能Spring MVC 运行流程Spring MVC 启动流程Spring 的单例实现原理...
2020-04-12 17:38:56 469
原创 14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。class Solution {...
2020-04-11 21:50:45 91
原创 389. 找不同
给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例:输入:s = "abcd"t = "abcde"输出:e解释:‘e’ 是那个被添加的字母。ASCII码运算class Solution { public char findTheDifference(Str...
2020-04-10 20:39:14 120
15856_eec3d8ce85-背包问题知识框架图.png
2020-05-11
新型肺炎实战.zip
2020-04-06
天池工业蒸汽.zip
2020-04-06
少年的你评论数据分析.zip
2020-04-06
金融反欺诈实战.zip
2020-04-06
国庆档电影数据分析.zip
2020-04-06
git常用命令.txt
2020-04-06
Spring-AOP.zip
2020-04-06
mantisbt-2.24.0.tar.gz
2020-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人