文章库ARTICLE COLUMN

  • [Leetcode] Container With Most Water 最大盛水容器

    [Leetcode] Container With Most Water 最大盛水容器

    摘要:最新更新请访问栈法复杂度时间空间思路最大盛水量取决于两边中较短的那条边,而且如果将较短的边换为更短边的话,盛水量只会变少。所以我们可以用两个头尾指针,计算出当前最大的盛水量后,将较短的边向中间移,因为我们想看看能不能把较短的边换长一点...

    xiguadadaxiguadada 评论0 收藏0
  • [Leetcode] Candy 分糖果

    [Leetcode] Candy 分糖果

    摘要:贪心法复杂度时间空间思路典型的贪心法,如果一个孩子比另一个孩子的分高,我们只多给块糖。我们可以先从左往右遍历,确保每个孩子根他左边的孩子相比,如果分高,则糖要多个,如果分比左边低,就只给一颗。 Candy There are N children standing in ...

    张宪坤张宪坤 评论0 收藏0
  • [Leetcode] Reorder List 链表重新排序

    [Leetcode] Reorder List 链表重新排序

    摘要:要找到后半部分的起点,就是用快慢指针。不过该题我们不能直接拿到中间,而是要拿到中间的前一个节点,这样才能把第一个子链表的末尾置为空,这里的技巧就是快慢指针循环的条件是。注意因为不能有额外空间,我们最好用迭代的方法反转链表。 Reorder Li...

    hufenghufeng 评论0 收藏0
  • [Leetcode] Rotate List 旋转链表

    [Leetcode] Rotate List 旋转链表

    摘要:不过,由于可能大于链表的长度,所以我们要先对取链表长度的模。代码计算链表长度如果不旋转或者原链表为空则直接返回让快指针先走步找到新头节点的前一个节点将后半部分放到前面来 Rotate List Given a list, rotate the list to the right by k pla...

    Yu_HuangYu_Huang 评论0 收藏0
  • [Leetcode] Evaluate Reverse Polish Notation 计算逆波兰表

    [Leetcode] Evaluate Reverse Polish Notation 计算逆波兰表

    摘要:栈法复杂度时间空间思路逆波兰表达式的计算十分方便,对于运算符,其运算的两个数就是这个运算符前面的两个数。注意对于减法,先弹出的是减号后面的数。 Evaluate Reverse Polish Notation Evaluate the value of an arithmetic expression in Revers...

    ephereridephererid 评论0 收藏0
  • [Leetcode] Validate Binary Search Tree 验证二叉搜索树

    [Leetcode] Validate Binary Search Tree 验证二叉搜索树

    摘要:注意这里的结构和不同的二叉树遍历一样,如果到空节点就返回,否则递归遍历左节点和右节点。唯一不同是加入了和,所以要在递归之前先判断是否符合和的条件。代码如果该节点大于上限返回假如果该节点小于下限返回假递归判断左子树和右子树 Validate Bin...

    fuchenxuanfuchenxuan 评论0 收藏0
  • [Leetcode] Convert Sorted Array/List to Binary Sea

    [Leetcode] Convert Sorted Array/List to Binary Sea

    摘要:我们可以用和两个值来限定子树在链表中的位置,通过递归的方式,深入找到最左边,然后开始顺序遍历链表链表当前节点作为全局变量,这样无论递归在哪我们都能拿到,同时建树。代码先递归的计算左子树创造根节点最后递归的计算右子树 Convert Sorted Lis...

    wpwwpw 评论0 收藏0
  • 设计模式(9)工厂模式(讲解+应用)

    设计模式(9)工厂模式(讲解+应用)

    摘要:工厂模式就是用来创建对象,生产对象的。而现在,其全部依赖于工厂类,通过一个工厂类,实现解耦。应用实例实际设计中,工厂模式用的也是比较多,而且这种模式也会比较好辨识,带有。 目录 工厂模式 为什么使用工厂模式 应用实例 工厂模式 工厂模式...

    mushangmushang 评论0 收藏0
  • JavaIO :JavaIO输入输出流

    JavaIO :JavaIO输入输出流

    摘要:下面我们使用字节输入输出流来说明这个问题输入流一般是由对象如建立的,当新建一个时,对象建立了一个包含有数据的管道其实就是我们所说的这个流并将对象存储的数据输入到管道中,因此管道里的数据流就是对象内的数据。 流的原理: showImg("/img/bVq...

    CloudwiseAPMCloudwiseAPM 评论0 收藏0
  • [Leetcode] Find the Duplicate Number 找到重复数字

    [Leetcode] Find the Duplicate Number 找到重复数字

    摘要:暴力法复杂度时间空间思路如果不用空间的话,最直接的方法就是选择一个数,然后再遍历整个数组看是否有跟这个数相同的数就行了。二分法复杂度时间空间思路实际上,我们可以根据抽屉原理简化刚才的暴力法。 Find the Duplicate Number Given an array ...

    chnmagnuschnmagnus 评论0 收藏0
  • 如何配置SLF4J不同的日志实现

    如何配置SLF4J不同的日志实现

    摘要:想要看级别的信息,你需要在启动时传入这个系统属性使用与日志现在我们可以试验并更换不同的日志实现,但你的程序代码可以保持不变。我们要做的是用另一个流行的日志实现来替换掉,比如。又一次,我们必须对我们选的每一个日志实现做配置。 使用slf4j...

    bovensonbovenson 评论0 收藏0
  • Java实现MD5加密解密类

    Java实现MD5加密解密类

    Java实现MD5加密以及解密类,附带测试类,具体见代码。 MD5加密解密类——MyMD5Util,代码如下 package com.zyg.security.md5; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgori...

    andong777andong777 评论0 收藏0
  • [Leetcode] Implement Stack using Queues 用队列实现栈

    [Leetcode] Implement Stack using Queues 用队列实现栈

    摘要:双队列法复杂度时间空间思路和类似,我们也可以用两个队列来模拟栈的操作。当时,我们将数字进非空的队列就行了。操作和一样,区别在于我们拿到最后一个数后,还要再把它进另一个队列中。 双队列法 复杂度 时间 O(N) 空间 O(N) 思路 和Implement Queue...

    ivan_qhzivan_qhz 评论0 收藏0
  • Java多线程:Java多线程基础

    Java多线程:Java多线程基础

    摘要:另外一种方法是,将这个线程加入一个线程组,在线程组里重写方法来处理抛出的异常,这时线程组的作用相当于实现了的类。使用对象处理异常格式错误使用线程组处理异常测试异常 感性地理解一下什么是线程? 线程这个概念其实是比较抽象的,虽然依照教科...

    CHENGKANGCHENGKANG 评论0 收藏0
  • Java多线程:Java多线程执行框架

    Java多线程:Java多线程执行框架

    摘要:线程执行框架启动线程将要多线程执行的任务封装为一个对象将其传给一个执行框架对象从线程池中选择线程执行工作任务。 为什么需要执行框架呢?使用一般的new方法来创建线程有什么问题呢?一般的new线程的方式一般要给出一个实现了Runnable接口的执行类...

    silencezwmsilencezwm 评论0 收藏0
  • Java多线程:Java多线程同步与synchronized

    Java多线程:Java多线程同步与synchronized

    摘要:尤其关键的是,当一个线程访问的一个同步代码块或同步方法时,其他线程对中所有其它同步代码块或同步方法的访问将被阻塞。同步代码块是对一个对象作为参数进行锁定。 为什么需要同步多线程?线程的同步是指让多个运行的线程在一起良好地协作,达到让多...

    k00baak00baa 评论0 收藏0
  • Java多线程:Java多线程同步与对象控制权

    Java多线程:Java多线程同步与对象控制权

    摘要:辅助线程执行主线程正在执行函数函数如果对象调用了方法就会使持有该对象的线程把该对象的控制权交出去,然后处于等待状态。当同步方法执行完毕或者执行时,其他某个线程将获得对象的访问权。 join()函数Join的含义是:将某一线程加入成为另一个线程的...

    joyqijoyqi 评论0 收藏0
  • [Leetcode] House Robber 打家劫舍

    [Leetcode] House Robber 打家劫舍

    摘要:动态规划复杂度时间空间思路一般来说,给定一个规则,让我们求任意状态下的解,都是用动态规划。另外我们可以做一点优化,本来我们是要用一个数组来保存之前的结果的。所以我们分别算出这两个条件下的最大收益,然后取更大的就行了。可以复用的代码。 ...

    golden_hamstergolden_hamster 评论0 收藏0
  • [Leetcode] Search in Rotated Sorted Array 搜索旋转有序数组

    [Leetcode] Search in Rotated Sorted Array 搜索旋转有序数组

    摘要:如果左边的点比右边的大,说明这两个点之间有一个旋转点,导致了不再有序。因为只有一个旋转点,所以一分为二后,肯定有一半是有序的。 Search in Rotated Sorted Array I Suppose a sorted array is rotated at some pivot unknown to you beforehand...

    thursdaythursday 评论0 收藏0
  • [Leetcode] Unique Binary Search Trees 唯一二叉搜索树

    [Leetcode] Unique Binary Search Trees 唯一二叉搜索树

    摘要:而根可以选择从到的任意的数,唯一二叉树的总数,就是根为到的树相加。所以该问题化简为以为根,其唯一左子树和右子树各有多少,这就是个动态规划的问题了。 Unique Binary Search Trees I && II 解法请见:https://yanjia.li/zh/2019/02/... Given ...

    enrecul101enrecul101 评论0 收藏0
  • [Leetcode] Longest Consecutive Sequence 最长连续数列

    [Leetcode] Longest Consecutive Sequence 最长连续数列

    摘要:集合法复杂度时间空间思路将所有数都加入集合中,然后再遍历这些数,因为我们能的判断某个数是否在集合中,所以我们可以一个个向上或者向下检查。时间复杂度仍是,因为我们不会检查不存在于数组的数,而存在于数组的数也只会检查一次。 Longest Consec...

    lei___lei___ 评论0 收藏0
  • [Leetcode] Valid Anagram 验证变形词

    [Leetcode] Valid Anagram 验证变形词

    摘要:排序法复杂度时间空间思路因为变形词两个单词对应字母出现的次数都相同,所以如果将两个单词按字母顺序排序,肯定会变为一个字符串,如果字符串不相同,则不是变形词。 Valid Anagram Given two strings s and t, write a function to determine if t...

    justjavacjustjavac 评论0 收藏0
  • 设计模式(7)代理模式(讲解+应用)

    设计模式(7)代理模式(讲解+应用)

    摘要:目录代理模式为什么使用代理模式应用实例代理模式对于代理模式,和委托方式分不开,感觉委托和代理没有什么区别,而委托却不被称做一个设计模式,今天再次看代理模式,才有所理解。回到正题代理模式为对象提供一个替身或者是占一个位子,从而控制对其访...

    JasinYipJasinYip 评论0 收藏0
  • [Leetcode] Decode Ways 解码方式

    [Leetcode] Decode Ways 解码方式

    摘要:最新更新请见动态规划复杂度时间空间思路解码是有规律的,所以我们可以尝试动态规划。如果字符串的第位和第位不能组成有效二位数字,而且第位不是的话,说明我们是在第位的解码方法上继续解码。 Decode Ways 最新更新请见:https://yanjia.me/zh/2019/...

    animabearanimabear 评论0 收藏0
  • [Leetcode] Alien Dictionary 外文字典

    [Leetcode] Alien Dictionary 外文字典

    摘要:拓扑排序复杂度时间空间思路首先简单介绍一下拓扑排序,这是一个能够找出有向无环图顺序的一个方法假设我们有条边,先将每个节点的计数器初始化为。最后,我们开始拓扑排序,从计数器为的字母开始广度优先搜索。 Alien Dictionary There is a new ali...

    pkhopepkhope 评论0 收藏0

热门文章

<