我要进厂
文章平均质量分 71
此专栏记录从垃圾外包走向大厂的途径,我将用我亲身经历来告诉我自己,我不是笨,只是不够努力,本专栏下有算法+技术两个专栏。
三少说
预则立,不预则废!
展开
-
leetcode刷题记录
热题top100 11. 盛最多水的容器 原题地址 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例 1: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最原创 2022-02-28 22:40:36 · 2081 阅读 · 0 评论 -
LeetCode5.最长回文子串(Java实现)
一:题目描述 原题链接 5. 最长回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = “babad” 输出:“bab” 解释:“aba” 同样是符合题意的答案。 示例 2: 输入:s = “cbbd” 输出:“bb” 示例 3: 输入:s = “a” 输出:“a” 示例 4: 输入:s = “ac” 输出:“a” 提示: 1 <= s.length <= 1000 s 仅由数字和英文字母(大写和/或小写)组成 二:解题思路(官方解法) 如果 s = a 那么最原创 2022-02-03 14:20:19 · 820 阅读 · 0 评论 -
LeetCode4.寻找两个正序数组的中位数(Java代码)
LeetCode4.寻找两个正序数组的中位数 一:题目描述 4. 寻找两个正序数组的中位数 难度困难4868 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (m+n)) 。 示例 1: 输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数 2 示例 2: 输入:nums1 = [1,2], nums2 = [3,4]原创 2022-01-11 20:25:08 · 474 阅读 · 1 评论 -
我要进大厂-算法-第九天(暴力递归~动态规划)
阅读该文章预计90分钟 文章目录动态规划一:初步认识动态规划1.1:介绍递归和动态规划二:求阶乘2.1:思路讲解2.2:Java代码三:汉诺塔问题3.1:题目介绍3.2:思路讲解3.3:Java代码四:打印一个字符串的所有子序列,包括空串4.1:思路解析4.2:Java代码(递归)五:打印一个字符串的全排列5.1:思路解析5.2:Java代码 动态规划 一:初步认识动态规划 1.1:介绍递归和动态规划 暴力递归: 把问题转化为规模缩小了的同类问题的子问题 有明确的不需要继续进行递归的条件(base cas原创 2021-08-22 23:06:42 · 218 阅读 · 0 评论 -
我要进大厂-算法-第八天(贪心~好难呀)
阅读该文章预计90分钟 文章目录一:前缀树1.1:举个例子说明前缀树1.2:作用1.3: Java代码二:贪心2.1:前提知识 一:前缀树 1.1:举个例子说明前缀树 举个例子: "abc" 加到头节点 如果头节点没有走向a的路,就创建一个a,依次建立a、b、c “bce" 加到头节点 如果头节点没有走向b的路,就创建b,如果没有b-c的路,依次加入c、e ”abd“ 加入到头节点 头节点有走向a的路,那么来到a,有a-》b,来到b,没有b-d,则b的下面创建一个d 总的来说,依次看看有没有头节点到原创 2021-08-20 22:14:21 · 233 阅读 · 0 评论 -
我要进大厂-算法-第七天(Hash所有问题)
阅读该文章预计20分钟 文章目录一:设计RandomPool结构1.1:题目描述1.2:思路讲解1.3:Java代码二:岛屿问题2.1:问题描述2.2: 思路讲解2.3:Java代码 一:设计RandomPool结构 1.1:题目描述 【题目】 设计一种结构,在该结构中有如下三个功能: insert(key):将某个key加入到该结构,做到不重复加入。 delete(key):将原本在结构中的某个key移除。 getRandom():等概率随机返回结构中的任何一个key。 【要求】 Insert、del原创 2021-08-19 19:15:29 · 170 阅读 · 0 评论 -
我要进大厂-算法-第六天(二叉树所有问题,拿来吧你)
阅读该文章预计60分钟 文章目录一:二叉树的遍历1.1:题目描述1.2:思路分析1.3:Java代码二:找到二叉树的后继节点2.1:题目描述2.2:思路讲解2.3:Java代码三:二叉树的序列化和反序列化3.1:题目介绍3.2:思路讲解3.3:Java代码四:判断是否是平衡二叉树4.1:思路讲解4.2:Java代码五:是否是搜索二叉树5.1:思路讲解5.2:Java代码六:是否是完全二叉树6.1:思路讲解6.2:Java代码七:完全二叉树的节点个数7.1:思路讲解7.2:Java代码 一:二叉树的遍历 1.原创 2021-08-19 12:14:07 · 168 阅读 · 0 评论 -
我要进大厂-算法-第五天(链表热点题)
阅读该文章预计30分钟 文章目录一:复制含有随机指针节点的链表1.1:题目描述1.2:思路分析1.2.1:空间复杂度O(N)1.2.2:空间复杂度O(1)1.3:Java代码二:两个单链表相交的节点2.1:题目描述2.2:题目分析2.3:Java代码 一:复制含有随机指针节点的链表 1.1:题目描述 【题目】 一种特殊的链表节点类描述如下: public static class Node { private int value; private Node next;原创 2021-08-11 20:32:54 · 102 阅读 · 0 评论 -
我要进大厂-算法-第四天(拿下链表)
阅读该文章需要60分钟 文章目录一:旋转正方形矩阵1.1:题目描述1.2:详细思路1.3:Java代码二:反转单向链表、反转双向链表2.1:题目描述2.2:思路讲解2.3:Java代码三: 之字形打印矩阵3.1:题目描述3.2:思路讲解3.3:Java代码四:行和列都排好序,找数4.1:题目描述4.2:思路讲解4.3:Java代码五:打印两个有序链表的公共部分5.1:题目描述5.2:思路讲解5.3:Java代码六:判断链表是否为回文结构6.1:题目描述6.2:思路如下6.3:Java代码七:放到最后 一:旋原创 2021-08-04 11:16:28 · 170 阅读 · 0 评论 -
我要进大厂-算法-第三天(栈和队列拿下)
一:数组实现栈、队列 前提知识:栈先进后出,队列先进先出。 1.1:数组实现栈 1.1.1:题目描述: 用数组结构实现大小固定的队列和栈 1.1.2:思路如下: 用数组存进来的数 用一个变量指明最后一个数的位置(尾标志) push操作放入存的数据,尾标志向后移动一位 pop操作取出最后一位的数据,尾标志向前移动一位 1.1.3:Java代码 package xyz.fudongyang.basic.class_03.my; public class Code_01_Array_To_Stack_Que原创 2021-07-28 15:30:45 · 147 阅读 · 0 评论 -
我要进大厂-算法-第二天(热频高级排序)
阅读该文章需要花费15分钟(网-师承左程云) 一.荷兰国旗问题 1.1 题目描述: 给定一个数组arr,和一个数num,请把小于num的数放在数组的 左边,等于num的数放在数组的中间,大于num的数放在数组的 右边。 要求额外空间复杂度O(1),时间复杂度O(N) 1.2 思路 先分析下,分析过程如下 空间复杂度为1,则只能使用临时变量,不能开辟内存空间了,也就是不能申请辅助数组了。 时间复杂度on,也就是只能遍历一遍数组。 emmmm 让我们学习下这个思路 既然不能分配辅助数组,那我们的原数组要分为三原创 2021-07-15 16:19:14 · 229 阅读 · 0 评论 -
策略模式工作中的运用
一:前景提要 前景: 工作快一年了,近期的需求需要改动之前写的代码,新增加功能,看到一处代码,非常冗余,好多if else 判断,并且里面的逻辑是可重用的、可统一管理的。这是谁写的垃圾代码,于是我打开annotate with git blame发现是我去年写的代码。咳咳,情有可原,当时业务没那么复杂(其实当时不会策略模式) 代码业务场景: 判断多种控件上下游关系,校验控件参数。 业务代码: /** * 遍历 nodeDataArray 初始化数据 * * @param原创 2021-07-14 17:18:34 · 334 阅读 · 2 评论 -
我要进大厂-算法-第一天(排序算法全家桶)
我要进大厂-算法-第一天 阅读该文章需要花费15分钟(网-师承左程云) 一:认识基本概念 1.1 时间复杂度 常数时间的操作:一个操作如果和数据量没有关系,每次都是 固定时间内完成的操作,叫做常数操作。 时间复杂度为一个算法流程中,常数操作数量的指标。常用O (读作big O)来表示。具体来说,在常数操作数量的表达式中, 只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分 如果记为f(N),那么时间复杂度为O(f(N))。 评价一个算法流程的好坏,先看时间复杂度的指标,然后再分 析不同数据样本下的实际原创 2021-06-28 22:52:35 · 265 阅读 · 1 评论