![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVAse
_龙卷风_
这个作者很懒,什么都没留下…
展开
-
二叉树遍历:没那么简单
使用递归遍历二叉树,已经不能熟的不能再熟了,同时还有不少问题可以用到递归的方法去求解。本文的重点不是递归遍历二叉树。迭代的形式:1.前序遍历递归的方法是jvm为我们的方法调用隐式的准备了一个FILO的栈,迭代的形式就是手动维护一个栈。class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> ans = new ArrayList原创 2020-11-20 22:29:17 · 182 阅读 · 0 评论 -
Java集合类的整理
Java集合的重要性不言而喻,必须要熟练掌握常用的集合及其方法,还有一些源码,例如面试经常会问到的HashMap,ConcurrentHashMap源码。其实看源码也不是仅仅为了应付面试,能够知道集合的底层原理,对于编程和理解非常有帮助,还有对于性能的选择。...原创 2020-11-09 23:11:00 · 67 阅读 · 0 评论 -
String类方法使用整理
String是一个经常使用的类,其中的类方法数量也不少,且比较重要,开个帖子记录下一些方法的使用。1. public String[] split(String regex)个人理解就是用regex字符串去分割String对象,并将每一段放入String[]数组中,例如最简单的test1 @Test public void splitTest1() { String test = "a b c d"; String[] split = test原创 2020-11-09 23:05:24 · 117 阅读 · 0 评论 -
通过异或位运算(^)的方式交换两个元素
在一般交换两个元素时,一般采用一个辅助变量tmp来实现,如下:tmp = s[high];s[high] = s[low];s[low] = tmp;实际上还可以通过异或位运算(^),并且不需要辅助变量的方式,如下:s[high] ^= s[low];s[low] ^= s[high];s[high] ^= s[low]; ...原创 2020-11-09 18:50:49 · 351 阅读 · 0 评论 -
Inter.MAX_VALUE和MIN_VALUE,2^31-1,-2^31
做题的时候经常碰到关于数值的取值范围,比如Integer.MAX_VAULUE = 2 ^31 - 1 =2,147,483,647Integer.MIN_VALUE = -2 ^ 31 =-2,147,483,648这时候可以根据具体的数值大小来编程。原创 2020-10-29 10:02:31 · 264 阅读 · 0 评论 -
JAVA位运算
再做剑指offer相关题目时,有要用到位运算符的,在此转载一个博客,便于学习:https://blog.csdn.net/javazejian/article/details/51181320原创 2020-06-09 21:19:20 · 265 阅读 · 0 评论 -
二分查找
对于按照顺序(具体代码根据顺序决定,一般是升序)排好的数组,利用二分查找效率比较高二分查找原理比较简单,在此不赘述,直接上代码递归形式:public int binarySearch(int[] nums, int target, int low, int high) { if (target < nums[low] || target > nums[high] || low > high) return -1; int mid = low +原创 2020-06-03 19:02:28 · 71 阅读 · 0 评论 -
类似于匿名内部类Map类的创建
在java的一些程序中,某些函数形参需要用到Map集合,通常我们是直接在外部创建一个Map的是实现类,然后put一些数据进去。这种方式麻烦,代码看起来档次不高。可以采用以下形式:List<Blog> blogs = mapper.queryBlogIf(new HashMap() {{ put("title", "Java"); put("author", "狂神说"); }});注:本段代码选自Mybatis学习课程中.原创 2020-06-02 19:02:29 · 643 阅读 · 0 评论 -
归并排序
归并排序,采用了分而治之的思想,原理图如下所示:分成一个个独立的元素之后,开始根据大小关系重新组合(关系可以自定义),组合时需要用到辅助数组,为了避免每次都要用新的辅助数组,我们从外部传入一个辅助数组temp下面是代码:public void mergeSort(int[] arr, int left, int right, int[] temp) { if (left < right) { int mid = (left + right.原创 2020-05-31 23:27:33 · 102 阅读 · 0 评论