Loading

正文内容加载中...
posted @ 2017-07-29 09:55 Grey Zeng 阅读(241) 评论(4) 推荐(2) 编辑
摘要: 搜索二叉树 定义:任何一个节点,左树都比这个节点小,右数都比这个节点大,经典搜索二叉树是没有重复值的,有重复值就压在一起 构造搜索二叉树方法: 比节点大,就往右边滑,滑到空就把节点加上 比节点小,就往左边滑,滑到空就把节点加上 搜索二叉树的增删改,注:改可以转换成删掉再增加 搜索二叉树的删除流程如下 阅读全文
posted @ 2021-10-14 23:04 Grey Zeng 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 斐波那契数列介绍 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 相关题目参考:LeetCode 阅读全文
posted @ 2021-10-09 23:23 Grey Zeng 阅读(144) 评论(0) 推荐(1) 编辑
摘要: 问题一:一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这种数 牛客-NowCoder_EvenOddTimes LeetCode_0136_SingleNumber 问题一解题思路 因为a ^ a = 0, 所以出现过偶次的数异或结果都是0,又因为0^a=a,所以把数组中所有的 阅读全文
posted @ 2021-10-09 13:52 Grey Zeng 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:Java中的引用类型和使用场景 Java中的引用类型有哪几种? Java中的引用类型分成强引用, 软引用, 弱引用, 虚引用。 强引用 没有引用指向这个对象,垃圾回收会回收 package git.snippets.juc; import java.io.IOExcepti 阅读全文
posted @ 2021-10-07 21:57 Grey Zeng 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 说明 以下提到的数据结构和元素类型均基于Java语言。 问题1 32位无符号整数的范围是0~4,294,967,295(即:0 ~ 2^32 - 1)现在有一个正好包含40亿个无符号整数的文件,可以使用最多1GB的内存,怎么找到出现次数最多的数? 首先,需要考虑最差情况,假设40亿个数都不一样。 如 阅读全文
posted @ 2021-10-06 15:29 Grey Zeng 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:Java中的HashMap 扩容机制 jdk1.7 先生成新数组。 遍历老数组中的每个位置上的链表上的个元累。 取个元累的key,并基于新数组长度,计算出每个元累在新数组中的下标。 将元素添加到新数组中去。 所有元转移完了之后,将新数组赋给HashMap对象的table属性 阅读全文
posted @ 2021-10-05 20:12 Grey Zeng 阅读(244) 评论(0) 推荐(1) 编辑
摘要: 作者:Grey 原文地址:单机百万连接调优和Netty应用级别调优 说明 本文为深度解析Netty源码的学习笔记。 单机百万连接调优 准备两台Linux服务器,一个充当服务端,一个充当客户端。 服务端 操作系统:CentOS 7 配置:4核8G IP:192.168.118.138 客户端 操作系统 阅读全文
posted @ 2021-10-03 15:59 Grey Zeng 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 说明 主要介绍了冒泡排序,插入排序和选择排序的流程。 冒泡排序 冒泡排序流程 在arr[0...N-1]范围上: arr[0]和arr[1],谁大谁来到1位置; arr[1]和arr[2],谁大谁来到2位置 以此类推... arr[N-2]和arr[N-1],谁大谁来到第N-1个位置上 在arr[0 阅读全文
posted @ 2021-10-02 19:08 Grey Zeng 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 解决的问题 KMP算法用于单个字符串匹配,AC自动机用于文章中匹配多个候选词。 注:本文所有图例见:AC自动机示例 流程 第一步,先将候选词先建立前缀树。 第二步,以宽度优先遍历的方式把前缀树的每个节点设置fail指针, 头节点的fail指针指向空, 头节点孩子的fail指针指向头, 其他节点的fa 阅读全文
posted @ 2021-09-28 13:42 Grey Zeng 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 要解决的问题 数组在不变的情况下,前缀和数组可以用来加速生成i ~ j位置的累加和信息, 假设前缀和数组为preSum,那么i...j的累加和 sum[i...j] = preSum[j] - preSum[i-1] 但是如果数组要单点修改,则以上的情况不适用,树状数组(index tree)就是解 阅读全文
posted @ 2021-09-27 17:04 Grey Zeng 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 思路 显然,如果整个字符串无重复值,那么字符串的字符个数就是最多划分的区间个数。 如果有重复值,假设a字符有重复,那么所有的a必须划分到同一个区间内,否则a分布不同区间的话,就不满足题目要求了。 同理,其他字符也是类似的逻辑。 我们的整体流程是从左往右遍历字符,当遍历到一个字符的 阅读全文
posted @ 2021-09-25 13:28 Grey Zeng 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题目链接 思路 题目要求至少移除多少个线段可以保证线段不出现重叠区域,比如以下情况: 我们至少需要移走四条线段才能让剩余线段不重叠。移动后的线段如下图 我们可以反过来考虑,即求所有非重叠区域的个数,假设是M,线段数量假设是N,那么N-M即为需要移除的线段数量。 主要流程如下,先把所有线段按 阅读全文
posted @ 2021-09-24 16:23 Grey Zeng 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 要解决的问题 数组任意区间内的元素修改,增加,求和,时间复杂度都要达到O(logN)水平, 方法说明如下 L...R上都加V void add(L, R, V, arr) L...R上的值都更新成V void update(L, R, V, arr) L...R上求和并返回求和信息 int quer 阅读全文
posted @ 2021-09-23 23:53 Grey Zeng 阅读(72) 评论(0) 推荐(1) 编辑
摘要: 问题描述 无序数组求第K大的数,其中K从1开始算。 例如:[0,3,1,8,5,2]这个数组,第2大的数是5 OJ可参考:LeetCode_0215_KthLargestElementInAnArray 堆解法 设置一个小根堆,先把前K个数放入小根堆,对于这前K个数来说,堆顶元素一定是第K大的数,接 阅读全文
posted @ 2021-09-22 15:32 Grey Zeng 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 要解决的问题 假设字符串str长度为N,字符串match长度为M,M <= N, 想确定str中是否有某个子串是等于match的。返回和match匹配的字符串的首字母在str的位置,如果不匹配,则返回-1 OJ可参考:LeetCode 28. 实现 strStr() 暴力方法 从str串中每个位置开 阅读全文
posted @ 2021-09-21 18:45 Grey Zeng 阅读(143) 评论(0) 推荐(1) 编辑
摘要: 要解决的问题 求一个字符串最长回文子串是什么。且时间复杂度 O(N) 具体描述可参考: LeetCode_5_最长回文子串 LintCode_200_最长回文子串 暴力解法 以每个字符为中心向左右两边扩,直到扩不动为止,记录下每个字符对应能扩的范围大小。因为有每个位置左右两边能扩的最大范围,我们可以 阅读全文
posted @ 2021-09-20 14:09 Grey Zeng 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 要解决的问题 假设有一个源源吐出不同球的机器, 只有装下10个球的袋子,每一个吐出的球,要么放入袋子,要么永远扔掉,如何做到机器吐出每一个球之后,所有吐出的球都等概率被放进袋子里 规则 吐出1到10号球,完全入袋, 引入随机函数f(i),提供一个值i,等概率返回1-i的一个数字, 当K号球吐出的时候 阅读全文
posted @ 2021-09-19 12:27 Grey Zeng 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址: 微服务架构设计模式概述 说明 本文内容是《微服务架构设计模式》这本书的学习笔记 单体应用转换成微服务可以考虑的几个维度 SOA和微服务的区别 SOA 微服务 协议 重量级(SOAP,WS*) REST或者RPC 数据管理 共享数据库 每个服务都有自己的数据模型和数据库 典 阅读全文
posted @ 2021-09-17 13:31 Grey Zeng 阅读(546) 评论(1) 推荐(3) 编辑
摘要: 作者:Grey 原文地址:Linux学习笔记 说明 本文中Linux基于CentOS 7,主要是日常学到的一些笔记,所以内容相对零散。 /目录下文件夹主要作用 [root@linux /]# ll / total 16 lrwxrwxrwx. 1 root root 7 Aug 17 02:40 b 阅读全文
posted @ 2021-09-13 23:42 Grey Zeng 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 作者:Grey 原文地址:Spring如何解决循环依赖 如果X这个类依赖了Y,Y这个类依赖了X,就产生了循环依赖。在普通Java(非Spring框架下),这并不是一个问题。 参考如下示例代码: public class Demo { public static void main(String[] 阅读全文
posted @ 2021-09-13 16:30 Grey Zeng 阅读(289) 评论(0) 推荐(0) 编辑