自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

reachwang的博客

一个java小白,自学中

  • 博客(24)
  • 资源 (3)
  • 收藏
  • 关注

原创 leetcode_46:全排列

全排列,出了名的回溯法解决。不多说了,直接上代码吧:class Solution { public List<List<Integer>> permute(int[] nums) { List<List<Integer>> result = new LinkedList<>(); int[] fl...

2019-12-19 20:59:31 276

原创 leetcode_33:搜索旋转排序数组

这个题目的话关键在于找出旋转后数字的排列规律来。其实一个排好序的数组经过某一个点的旋转后,有一个特点就是在某个点为界限,左边是升序,右边是降序。我们其实利用一个折线图更容易理解些,如下这个点为7,其实就是最大值。那么我们既然时间复杂度是 O(log n) ,那肯定是二分法查找,只是这个求出mid后更新left和right的判断方法变了。假如我们现在就是上面的这一组数据,target为0。那么...

2019-12-19 20:40:12 291

原创 redis---压缩列表

压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数值,要么就是长度比较短的字符串,那么redis就会使用压缩列表来做列表键的底层实现。 另外,当一个哈希键只包含少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度比较短的字符串,那么redis就会使用压缩列表来做哈希键的底层实现,例如:# 后续更新将某些情况改造成了quicklist快速...

2019-12-17 22:21:35 326

原创 leetcode_131:分割回文串

遇到这个题目,我真的是头大。还是硬着头皮往下看,嗯,典型的回溯法。就写吧,回溯法我也讲不明白说实话,只是做了几道题然后慢慢找到了规律就会了。先上代码(代码花费的时间好多啊!!): public List<List<String>> partition(String s) { List<List<String>> result ...

2019-12-17 21:39:16 339

原创 leetcode_179:最大数

这个题目我是想到了使用自定义排序,而且要注意的是,我们是比较数字的字符串形式,因为这样容易直接从数字的高位开始比较。我们仔细想能找出构造最大数的规律:如果两个数字的位数相同,我们只需要那个最大的在前面,较小的再后面就可以了。如果两个数字位数不同,那么就要从头开始比较,哪个高位大,哪个就在前面,一直到最后。如果到了最后还没有比较出来(比如说345和3456),那么就要看较长数字的后面和开头数...

2019-12-17 20:42:36 310

原创 leetcode_162:寻找峰值

这个题目主要是弄懂峰值出现的时候会有哪些情况。

2019-12-17 19:39:42 336

原创 leetcode_739:每日温度

1. 暴力破解法这个题目本身来说直接暴力根本不难,只是暴力的话时间复杂度相对较高。暴力也就是遍历每一个元素,然后从目标元素触发向后找,找到第一个比他大的数字位置,然后用此位置减去目标元素所在的位置就是两者的间隔。代码如下: public int[] dailyTemperatures(int[] T) { int[] result = new int[T.length];...

2019-12-14 22:34:17 313

原创 leetcode_230:二叉搜索树中第K小的元素

这个题目我知道可以使用前序的非递归遍历,然后遍历的过程中改变k,直到找到为止。中序的遍历的非递归实现其实不难,我们只要缕清中序遍历的过程就很好写,前序遍历也就是左—>根—>右的顺序,那么我们可以先将根节点和其左子树进栈,然后在出栈的时候看看它的右子树是不是空,不为空则把右子树作为根节点进栈,并将此根节点的所有左子树进栈。这样就完成了先遍历左子树,然后根节点,最后右子树的过程。代码如下:...

2019-12-13 19:13:55 286

原创 leetcode_73:矩阵置零

这个题目不难,看题目最后的说明,说可以用O(mn)空间来解决,也可以用O(m+n)空间来解决。说白了这个问题就是记录每行或每列是否有0的问题,有零则设置一个标志。那么O(mn)的不用说了,就是每个位置都记录,然后用记录的标志去更新原数组。接下来说一下O(m+n)的情况:O(m+n)则是以行或者列为单位来记录,申请一个标志数组flag[rows+cols],遍历matrix的时候可以得到一个元素所...

2019-12-12 22:02:56 288

原创 leetcode_78:子集

这个题好意外啊,一顿分析猛如虎,一看战绩零杠五。其实我的思路是对的,只是在递归的时候没有想好参数,接下来说一下解题思路。首先看到这个题目的话,应该能想到就是使用回溯法,也就是使用递归。在我们想到要用回溯法的时候,一般递归的参数里面都会有一个层数来告诉我们什么时候返回。这里也不例外,我们这里的层数指的就是数组的下标。首先我们针对数组中的每个元素,把它构造成一个集合,并加到结果集中。针对每个元...

2019-12-12 21:28:15 321

转载 HTTP协议篇(一):多路复用、数据流

1.管道机制、多路复用1.1 管道机制(Pipelining)HTTP 1.1 引入了管道机制(Pipelining),即客户端可通过同一个TCP连接同时发送多个请求。如果客户端需要请求两个资源,以前的做法是在同一个TCP连接里面,先发送A请求,然后等待服务器做出回应,收到后再发出B请求;而管道机制则允许浏览器同时发出A请求和B请求,但是服务器还是按照顺序,先回应A请求,完成后再回应B请求。...

2019-12-09 17:20:06 905

原创 leetcode_61:旋转链表

这个题目也不难,只要分析出来旋转的规律就比较简单了。我看到的规律有两点:旋转了k次,其实就是对链表旋转了k % 链表长度次。旋转其实就是求倒数第k个节点,然后让这个节点及后面的节点接到头部。有了这两点,代码上可能就是要保存的变量比较多,还是要尝试写一下,但思路不难: public ListNode rotateRight(ListNode head, int k) { ...

2019-12-07 17:52:11 289

原创 leetcode_30:串联所有单词的子串

先看一下我的战况,看看那三个七分钟…,没办法着急了受,其实大部分时间就是花在了调边界条件上了。然后说一下思路吧:其实就是使用空间换取时间,但是我的时间没有很低,反而空间比我想象的要低一些。步骤如下:我们把words中的所有单词放到哈希表中,其中的键为每个单词,值为单词的次数。然后我们遍历这个字符串s,而且每次遍历的子串长度都应该和words数组中所有字符串长度的总和一样,即words.l...

2019-12-07 17:19:17 335

原创 内存分配与回收策略

其实Java技术体系中的自动内存管理本质上就是自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。内存的回收我们已经讲过,现在看看内存的分配。内存分配是在堆里面进行的,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中。规则不固定,取决于使用的垃圾收集器组合及相关的参数。接下来我们讲解几条比较普遍的内存分...

2019-12-06 22:13:17 349

原创 HotSpot的算法实现

我们知道虚拟机中的对象存活判定算法和垃圾收集算法,但在HotSpot中实现这些算法时,必须对算法的执行效率有严格的考量,才能保证虚拟机高效运行。1. 枚举根节点从可达性分析中从GC Roots节点找引用链这个操作为例,可作为GC Roots的节点主要正在**①全局性的引用(常量或类静态属性)与执行上下文(栈帧中的本地变量表)**中,但有些应用的仅仅方法区就有数百兆,若逐个检查里面的引用,肯定会...

2019-12-06 16:22:34 363

原创 leetcode_19:删除链表的倒数第N个节点

这个题目其实比较简单,我们都知道怎么做。无非就是先让一个指针tail指向开头pre(初始为head)的后面的第n个位置,然后pre和tail同时向后移动,tail为空的时候,pre指向的就是要删除的节点。但是我却错了很多次,当然原因就是因为边界条件,即如果只有一个节点怎么办?如果删除的是第一个节点怎么办?然后考虑了还是错。但其实并没有考虑的那么复杂,只要涉及到需要改变头结点的题目,我们只需要再加一...

2019-12-05 11:41:23 284

原创 leetcode_117:填充每个节点的下一个右侧节点指针 II

这个题目和leetcode_116是类似的,但是这个题目不能其中的第二种解法,因为它并不是一个完全二叉树。但是第一种解法是可行的(原谅我第一种写法写的有点冗余,但是也不想改了,算是留着个教训吧)。查看当前节点是父节点的左子节点还是右子节点。如果是左子节点则查看右子节点是否为空:不为空则让左子节点的next指向右子节点;为空则顺着父节点的next指针向下找,直到找到一个有孩子节点的树,如果没找...

2019-12-04 20:35:15 366

原创 leetcode_75:颜色分类

这个题目一开始并不会做,但是后来硬着头皮还是做了出来(傲娇脸!!)。咋个说呢,思路比较容易想到,就是把0放左边,2放右边,那么中间自然就是1了。我也是这样想的,我也是这样做的,哈哈。下面说一下大体思路。首先有两个指针p0和p2,它们分别从最左端和最右端出发,而且分别始终指向第一个不为0和不为2的值。然后在设置一个指针p从p0触发,直到小于等于p2.如果p所指的数字为0(当然一开始不可能,因...

2019-12-02 21:32:55 360

转载 leetcode_201:数字范围按位与

显然,暴力解决方法是从m开始直到n求按位与,但很明显这太慢了,虽然时间复杂度是O(n),但显然不是一个好的解法.我们可以注意到这样一点,在数字加1的时候,最低位肯定会从0变成1,或者从1变成0,不管哪样,两个数的最低位中势必有一个0,而一旦出现了一个0,这一位上的按位与结果将永远为0.假如在m->n的增加过程中,m的最高位也发生了改变,那么m之下的所有位都变成过0.那样的话结果也只能是0了....

2019-12-02 17:42:19 253

原创 leetcode_31:下一个排列

这个题目更像是一个数学题目,是需要分析的。我们知道如果从数字的末尾向前遍历,一直是递增的状态,那么这个数字本身就已经是最大数字了。如下图所示,包括a[i]及后面的数字组合就是最大的,但是遇到了a[i-1],就不是了,所以要从这个a[i-1]下手。包括a[i-1]及后面的数字组合不是最大的,那么比这个组合大一点的是哪一个呢?我们知道这个a[i-1]是处于高位的(个、十、百、千、万…),所以要找大一...

2019-12-01 22:53:58 266

原创 leetcode_64:最小路径和

这个题目就是典型的动态规划问题,因为每次只能向右或者向下走,所以对于一个矩阵,第一行和第一列的dp值就是前面的值相加得到的和。然后对于剩下的所有节点,其dp值应该是本节点的值和上边节点和左边节点中较小的dp值的和。公式为:for i=1 to rows dp[0][i] = grid[0][i] + grid[0][i-1] 这是第一行的dp值for i=1 to columns dp[i]...

2019-12-01 21:40:31 264

原创 leetcode_238:除自身以外数组的乘积

这个题目就是《剑指offer》上面的面试题66。刚开始就是按照上面的思路然后构造了两个数组pre和last,分别记录从前往后的累乘积和从后往前的累乘积,然后再遍历一次得到result,其中result[i] = pre[i-1] * last[i+1]。代码如下: public static int[] productExceptSelf(int[] nums) { int...

2019-12-01 17:36:28 361

原创 leetcode_1171:从链表中删去总和值为零的连续节点

这个题目的思路基本上和3Sum是类似的。使用三个指针,一个指针p1指向要计算的指定区间子链表的前一个节点,方便删除节点,即它自己不会参与计算;另外两个指针p2和p3则用于计算一个区间内的综合,如果某个区间内总和为0,那么此时p3所指的正好是区间外的第一个节点,此时将p1.next=p3即可。代码如下: public ListNode removeZeroSumSublists(ListNo...

2019-12-01 15:06:55 465

原创 leetcode_1019:链表中的下一个更大节点

这个题目我第一次看到太简单了吧,暴力就完事了,果不其然,时间复杂度很高,当然也是过了,没什么难度: public int[] nextLargerNodes(ListNode head) { List<Integer> result = new LinkedList<>(); while (head != null) { ...

2019-12-01 14:05:15 919

cifar10-python.zip

cifar图片库,里面包含了cifar的所有图片,有做深度学习的可以下载。

2019-08-08

【批量下载】pdf密码移除等.zip

里面包含两个文件,一个可以将加密的pdf进行解密,从而能够复制pdf内的内容,一个可以将pdf转为word。

2019-08-08

ReBEL-0.2.7.zip

包含集合卡尔曼滤波等常见的数据同化算法,自定义数据输入输出后,直接使用包内算法即可。

2019-07-11

空空如也

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

TA关注的人

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