自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yay1994的博客

越努力,越不焦虑

  • 博客(16)
  • 收藏
  • 关注

原创 N皇后和数独总结

N皇后问题:解法参考自《程序员面试金典》235页,这本书上的解答是用一维数组代替二维数组,因为每一行只能放一个皇后,那么我们以columns数组来表示皇后的位置,假如columns[i]=j,表示第i行的皇后位于第j列。接下来直接上代码:import java.util.*;public class NQueens { public static void main(String[...

2019-06-26 21:06:02 270

原创 线性欧拉筛选法求素数

求10000以内的所有素数,这个问题可以使用线性欧拉筛选法,时间复杂度为O(n),上代码:public class EulerSieve { static boolean[] flag = new boolean[10001]; static int[] prime = new int[10001]; public static void main(String[] args) { ...

2019-06-23 20:47:43 593

原创 有关并查集的一道编程题

题目来自牛客网:https://www.nowcoder.com/practice/1ecd3d9e09664cde94919b65ea06b47c?tpId=90&tqId=30919&tPage=8&rp=8&ru=/ta/2018test&qru=/ta/2018test/question-ranking通过讨论区知道这道题使用并查集来解决的(...

2019-05-20 20:51:52 197

原创 岛屿问题总结

题目来自牛客:https://www.nowcoder.com/practice/4ce64fe976c548f5beacfe47faf666b0?tpId=90&tqId=30924&tPage=8&rp=8&ru=/ta/2018test&qru=/ta/2018test/question-ranking递归解法:import java.uti...

2019-05-19 22:41:30 1590

原创 整数无序数组求第k大数

题目来自牛客网https://www.nowcoder.com/practice/097ab63cffa847d89716f2ca8c23524f?tpId=90&tqId=30914&tPage=7&rp=7&ru=/ta/2018test&qru=/ta/2018test/question-ranking两种方法,方法一:使用快排,经过一轮之后,元...

2019-05-15 22:10:18 836

原创 leetcode1004题解,最简单的滑动窗口写法

今天做了头条笔试题,又是惨淡而归,一道不会,然后有人告诉我最后一道题是leetcode原题,看了之后,理解了普通的滑动窗口的解法,然后看了高赞的解答,感觉好精简的说,想了好久才想明白,这里解释一下高赞的解答。原题如下:普通滑动窗口的Java代码如下(很容易理解,不解释): public int longestOnes(int[] A, int K) { ...

2019-04-27 18:22:45 1281

原创 Redis总结

第二章 简单动态字符串SDS:Simple Dynamic String结构以及举例:比起C字符串:1)常数复杂度获取字符串长度,因为有len属性2)杜绝缓冲区溢出:当SDS API需要对SDS进行修改时,API会先检查SDS的空间是否满足修改所需的要求,如果不满足的话,API会自动将SDS的空间扩展至执行修改所需的大小,然后执行操作。3)减少修改字符串时带来的内存重分配次数1.空...

2019-04-13 23:32:32 107

原创 MySQL总结

零碎知识点总结,主要来源于《深入浅出MySQL》SQL分类:DDL(Data Definition Languages)数据定义语言:create drop alterDML(Data Manipulation Language)数据操纵语句:insert delete update selectDCL(Data Control Language)数据控制语句:grant revokec...

2019-04-12 21:17:45 104

原创 设计模式总结

策略模式策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。类图:代码:package strategy;public interface Strategy { public void draw();}package strategy;public class GreenPen implements Strategy{...

2019-04-08 16:31:31 118

原创 JVM总结

《深入理解Java虚拟机》这本书看了三五遍,笔记也写了几十页,今天写一篇博客作为最后的总结。第二章 Java内存区域与内存程序计数器:代表当前线程锁执行字节码的行号指示器Java虚拟机栈:每个方法对应一个栈帧,用于存储局部变量表,操作数栈,动态链接(指向运行时常量池中改栈帧所属方法的引用),方法出口。long和double占两个slot,其余占一个slot。会抛出StackOverFlow...

2019-04-04 23:14:40 233

原创 跟着TreeMap学红黑树之终结篇

今天总结一下红黑树的删除以及删除之后的调整过程,还是基于1.8 TreeMap的源码。删除红黑树的删除操作: private void deleteEntry(Entry<K,V> p) { modCount++; size--; // If strictly internal, copy successor's eleme...

2019-04-02 15:48:15 101

原创 希尔排序

希尔排序,属于缩小增量排序,相当于多次进行插入排序。看下图(不是我画的,是从PPT上截取的):上代码:在这里插入代码片

2019-03-31 11:04:05 100

原创 树的遍历总结

本文总结一下树的几种遍历方法,分别是前序,前序非递归,中序,中序非递归,后序,后序非递归,按层次遍历,这7种。前序遍历先打印当前节点,再用前序遍历的方法遍历左右子树。前序遍历非递归遍历到当前节点,如果非空,打印这个节点,将其入栈,指向其左子节点,否则,出栈一个元素(这个元素的左子树遍历完毕),指向其右子节点。中序遍历用中序遍历的方法遍历左子树,打印当前节点,用中序遍历的方法打印右子数。...

2019-03-30 18:43:50 1503

原创 排序算法总结

本文总结一下冒泡排序,选择排序,插入排序,快速排序,归并排序,堆排序,主要从原理,代码实现,稳定性,时间复杂度,空间复杂度这几方面来介绍。冒泡排序原理每轮排序,从第一个数开始,依次和后一个位置的数比较,如果左边的数大于右边的,交换两个数。这样,第i轮排序,就会挑选出一个第i大的值。代码 public static void bubbleSort(int[] a, int n) { f...

2019-03-29 22:44:01 76

原创 01背包问题

背包问题问题介绍给一堆物品,每个物品都有重量wi以及价值vi,和一个背包,容量(即承重量)为c,挑选物品放入背包中,使得背包中物品的价值总和最大,求出最大价值以及物品组合。举个例子:重量数组为c=[5, 6, 7, 2, 3],价值数组为v=[8, 7, 2, 5, 6],背包容量为c=10,对于这个例子,最大价值为19,物品组合为重量为5,2,3的这三个物品,这个例子比较简单,能直接找出...

2019-03-26 11:59:09 134

原创 跟着TreeMap学红黑树

跟着TreeMap学红黑树最近面试被问了两三次红黑树,感觉红黑树还是有必要好好学一下的,因为TreeMap是用红黑树实现的,所以打算跟着TreeMap的源码学习一下红黑树,基于jdk1.8源码。红黑树的介绍红黑树是一种类平衡的树,红黑树和平衡树的区别是:平衡树是严格平衡的,对于任意一个节点n,n的左子树和右子树的高度差不得超过1,红黑树是非严格平衡的,对于任意一个节点,从当前节点开始,向左的...

2019-03-25 19:22:53 186

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除