算法
文章平均质量分 80
java冢狐
这个作者很懒,什么都没留下…
展开
-
【LeetCode】209.长度最小的子数组
今天给大家带来一个比较有趣的有关数组的题目,难度中等。整体解法不算困难,但是可以给人一种新的思考模式。那么话不多说,让我们来看看这道题目。题目题目链接: https://leetcode-cn.com/problems/minimum-size-subarray-sum/给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]原创 2021-07-26 14:25:44 · 251 阅读 · 3 评论 -
【剑指Offer】——拆解算法的常见套路
前面一段时间咱们整体的把面向Offer中的所有算法题给看了一遍,想必大家都有了一定的印象,那么今天我们就来整体的回顾一下这所有的算法题,并且结合我面试过程中的常考题目进行一个总结。看看那些题目是比较经典和典型的。又有那些算法思想是我们要学习和掌握的。那么接下来让我们开始吧。注意的是因为篇幅的关系这里仅做思路的讲解,具体的代码和细节建议回看之前总结的文章。还没有关注公众号的建议抓紧关注【Java冢狐】单例模式对应题目 NO.2 单例模式首先要说的就是单例模式,因为他实在是太重要了,面试中常常会让你原创 2021-04-30 18:19:49 · 355 阅读 · 2 评论 -
【剑指Offer】解题思路拆解Java版——第六期
下面这段时间带来的是对于剑指Offer(第二版)一书中的算法题目进行阅读并分享。原书中一共66道题目,我们就一天11道,用六天的时间来进行讲解,最后一天来个总结,争取在一周的时间内介绍完这66道经典题目。要是喜欢的欢迎关注公众号《Java冢狐》来追更!今天是剑指Offer的第六期,也是最后一期,我们终于把剑指offer的66道题目给看完了。完结撒花另外由于原书是C++代码编写而成,这边我们用Java来实现一遍,顺便说一下相关的面试知识点,一起进行面试前的复习。希望大家能够喜欢。另外有些地方的讲解可能并原创 2021-04-13 10:33:12 · 151 阅读 · 0 评论 -
【剑指Offer】解题思路拆解Java版——第五期
下面这段时间带来的是对于剑指Offer(第二版)一书中的算法题目进行阅读并分享。原书中一共66道题目,我们就一天11道,用六天的时间来进行讲解,最后一天来个总结,争取在一周的时间内介绍完这66道经典题目。要是喜欢的欢迎关注公众号《Java冢狐》来追更!今天是剑指Offer的第五期,另外由于原书是C++代码编写而成,这边我们用Java来实现一遍,顺便说一下相关的面试知识点,一起进行面试前的复习。希望大家能够喜欢。另外有些地方的讲解可能并不是十分到位,在此更推荐更大家去看原书。那么话不多少,让我们开始今原创 2021-04-08 16:04:43 · 130 阅读 · 0 评论 -
思维私塾——滑动窗口
滑动窗口算法其本质就是维护一个窗口,使其窗口中的值满足题目要求,主要用于解决数组/字符串的子元素问题,可以将嵌套的循环问题,转为单循环问题,从而降低时间复杂度。接下来我们通过具体的题目来解释如何使用滑动窗口来解决问题,以及其思想。题目LeetCode3.无重复字符的最长子串思路暴力解法时间复杂度较高,会达到 O(n^2),故而采取滑动窗口的方法降低时间复杂度定义一个 map 数据结构存储 (k, v),其中 key 值为字符,value 值为字符位置 +1,加 1 表示从字符位置后一个才开原创 2020-12-16 16:10:20 · 145 阅读 · 1 评论 -
思维私塾——快慢指针
在一些常见的算法题目中,尤其是链表题目中,在解法中常常会看到快慢指针的使用。快慢指针正如其名,使用一快一慢两个指针,对链表进行遍历。主要是利用两个指针的速度差;两倍速:用于求中间指针或者循环链表恒定n个差值:用于寻找倒数第N个指针下面我们就来看几道快慢指针的实际应用环形链表理论基础很简单,利用一块一慢两个指针遍历链表,如果链表存在环,那么快指针一定能套圈慢指针,所以只需要判断快指针能否追上慢指针,追上说明有环,未追上则说明没有环。 public boolean hasCycle(ListN原创 2020-12-05 10:39:58 · 246 阅读 · 0 评论 -
思维私塾——N数之和
在算法问题中有一类十分常见的问题,就是求和,例如LeetCode开篇第一题——两数之和,以及第15题三数之和和第18题四数之和。下面我们就来仔细分析下这种题目的解法以及套路。两数之和 题目很简单,就是求数组中那两个数之和和目标数一致。第一个涌现出来的想法就是很简单的直接暴力求解,两层for循环搞定。这种方法相对无脑,但是肯定不是最优解法,最优解法就是解法(哈希表)class Solution { public int[] twoSum(int[] nums, int targe原创 2020-11-30 17:14:24 · 363 阅读 · 0 评论 -
哈希表
哈希表哈希函数哈希函数形成的表为哈希表。元素关键字为K,位置为P基本思想:K和P之间建立对应关系,使得P=f(K);f为哈希函数哈希冲突:K不同的映射到同一位置哈希函数构造方法原则:函数本身便于计算,计算出来的地址分布均匀。减少冲突,数学分析法 实现知道关键字集合,且每个关键字的位数比哈希表地址码位数多,可以从关键字中选取特殊的若干位形成哈希地址。平方取中法 先平方...原创 2019-09-18 17:08:23 · 684 阅读 · 0 评论 -
LRU算法以及其实现
主要介绍了下LRU算法以及其两种实现原创 2020-01-19 14:30:36 · 359 阅读 · 0 评论