![](https://img-blog.csdnimg.cn/243a9358f71148a0a8f32352000ca30f.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
程序员刷题分析成长之路
文章平均质量分 87
我是一名已经工作8年的程序员,目前在一家世界500强,后端研发工作。2022-03开启刷题之路,我们一起学习,如果有不懂的,大家一起互相交流,共同学习,一起成长!
小伍说-523能源
未来已来,只是尚未流行,[等风来]
展开
-
算法分享系列--滑动窗口问题
滑动窗口是【双指针】问题的一个经典场景,双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。LeetCode中滑动窗口相关题目:力扣https://leetcode.cn/problems/longest-substring-without-repeating-characters/solution/hua-dong-chuang-kou-by-powcai/题目如下:解题思路如下: 本题是滑动窗口的经典案例,用 i,j 表示滑动窗口的左边界和右边原创 2022-06-09 23:11:51 · 987 阅读 · 0 评论 -
基础算法梳理--数组中重复数字【考察“沟通能力”的算法题】
基础算法梳理--数组中重复数字【考察“沟通能力”的算法题】2-1、只有时间【优先】--- 字典法时间复杂度 O(N): 遍历数组使用 O(N),HashSet 添加与查找元素皆为 O(1)。空间复杂度 O(N): HashSet 占用 O(N)大小的额外空间。2-2、进阶:增加空间要求,指针+原地排序数组时间复杂度 O(N): 遍历数组使用 O(N),每轮遍历的判断和交换操作使用 O(1) 。空间复杂度 O(1): 使用常数复杂度的额外空间。2-3、排序+去重思路,存在重复即回原创 2022-05-31 10:19:57 · 103 阅读 · 0 评论 -
算法学习No.13--从尾到头打印链表(3种实现方法)
1、根据反转链表引申出来的结果2、使用辅助空间--栈3、递归+回溯思路原创 2022-05-27 18:02:31 · 290 阅读 · 0 评论 -
算法分享系列No.12--全排列问题
从【全排列】问题开始理解【回溯算法】我们尝试在纸上写 3 个数字、4个数字、5个数字的全排列,相信不难找到这样的方法。以数组 [1, 2, 3] 的全排列为例。先写以 1 开头的全排列,它们是:[1, 2, 3], [1, 3, 2],即 1 + [2, 3] 的全排列(注意:递归结构体现在这里);再写以 2开头的全排列,它们是:[2, 1, 3], [2, 3, 1],即 2 + [1, 3] 的全排列;最后写以 3开头的全排列,它们是:[3, 1, 2], [3, 2, 1],即 3原创 2022-05-21 23:01:34 · 789 阅读 · 0 评论 -
算法分享系列No.11--求和系列问题全分析(两数之和,三数之和问题,链表求和,最大子数组和)
一、该题基础信息列表二、求和系列问题分析 ---- 两数之和,三数之和2-1 两数之和两数之和的详细代码如下:2-2、三数之和排序 + 双指针三数之和的详细代码实现如下:三、求和引申问题系列--链表求和/目标和/最大子数组和3-1、链表求和链表的结构体(这个是涉及链表题最基础的)链表求和的完整代码如下3-2、最大子数组和 (动态规划)...原创 2022-05-19 19:31:33 · 296 阅读 · 0 评论 -
算法分享系列No.10--使用【多线程】交替打印数字问题 & 【死锁】代码实现案例
使用多线程--交替打印数字问题(完整代码+输出打印)很多大厂会问这种实际类型的问题,如果在实际应用中用的较少,基本很难写出来,代码较基础,但是如果在面试中,那种环境下一旦写出来是很加分项。一、使用多线程--交替打印数字问题1、main函数创建两个线程,并进行启动2、多线程具体实现打印内容3、输出结果显示如下:二、死锁代码实现案例死锁的具体案例代码实现打印内容如下【造成死锁】:三、解除上面死锁的方法完整代码如下:解开死锁后的输出内容(这样就不会造成死锁)原创 2022-05-18 14:38:13 · 273 阅读 · 0 评论 -
大厂面试问答题汇总分析--- 多线程问题
线程池的工作原理 ,Java 并发类库提供的线程池有哪几种? 分别有什么特点?原创 2022-05-17 00:19:17 · 267 阅读 · 0 评论 -
【锁】的相关概念汇总
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现。如 synchronized 和 ReentrantLock(并发包中的锁类)等 。死锁,死锁的实现,悲观锁和乐观锁的区别等原创 2022-05-16 15:23:51 · 133 阅读 · 0 评论 -
算法分享系列No.9--出现次数的TopK问题
考察的是【数组】int[] nums中的出现频率TOP K高的元素。top k算法的经典实现大顶堆是和小顶堆,而在JAVA中可以用PriorityQueue实现小顶堆。Java中PriorityQueue实现了Queue接口,不允许放入null元素;其通过堆实现,具体说是通过完全二叉树(complete binary tree)实现的小顶堆(任意一个非叶子节点的权值,都不大于其左右子节点的权值),也就意味着可以通过数组来作为PriorityQueue的底层实现。原创 2022-05-15 19:38:30 · 349 阅读 · 0 评论 -
大厂面试问答题汇总分析--- 秒杀 / 限流 / 高并发
一、秒杀系统相关问题1-1、如何进行限流?1、合法性限流2、基于负载限流3、基于服务限流(重点)计数限流,固定窗口限流算法,滑动窗口限流,漏桶算法,令牌桶算法,限流结论1-2、架构设计1-3、业务分析1-4、秒杀技术挑战1-4-1、前端设计方案1-4-2、后端设计方案1-4-3、相关问题解决方案二、多线程相关问题2-1、操作系统中进程调度策略有哪几种?...原创 2022-05-15 10:56:16 · 708 阅读 · 0 评论 -
大厂面试问答题汇总分析---网络安全类问题
一、HTTP1-1、一次完整的HTTP请求过程。(浏览器输入URL点击回车发生了啥?)1-2、HTTP和HTTPS的区别是什么?1-3、什么是SSL ?https是如何保证数据传输的安全(SSL是怎么工作保证安全的)1-4、常见的状态码有哪些?二、传输协议分组,TCP,UDP2-1、TCP与UDP区别总结?2-2、TCP三次握手2-3、TCP四次挥手2-4、TCP如何保证可靠传输?2-5、TCP对应的应用层协议三、其他网络内容相关比较...原创 2022-05-14 20:45:23 · 986 阅读 · 0 评论 -
算法分享系列No.8--(大厂面试实际场景算法题)---找零钱 问题
一、该类题目---基础信息列表&背景大厂面试算法题,为了显示高逼格,显示高档次,经常跟实际问题相结合(如 股票买卖/ 找零钱问题/ 汽油问题 / 打家劫舍 / 分糖果 / 岛屿问题),想要考察面试人,从实际问题转化成熟悉的解题模型,灵活运用能力。近期问了些面试字节的朋友,30%都考到了股票。本次这类题型的梳理,也是对自己解决这类算法的一个总结。题目难易分类【easy】【middle】【hard】 题目频率(牛客有考察次数)【高频】(10<=考察次数)【中频】(2 <=考察..原创 2022-05-13 23:16:40 · 703 阅读 · 0 评论 -
算法分享系列No.7--(大厂面试实际问题) 股票买卖系列 & 打家劫舍问题
一、该类题目---基础信息列表背景大厂面试算法题,为了显示高逼格,显示高档次,经常跟实际问题相结合,想要考察面试人,从实际问题转化成熟悉的解题模型,灵活运用能力。近期问了些面试字节的朋友,30%都考到了股票。本次这类题型的梳理,也是对自己解决这类算法的一个总结。初了岛屿问题属于DFS模式以外,其余的实际问题基本都是 动态规划,贪心思路,希望看完本文,能够通过各个算法的解题思路,对这两个算法----动态规划,贪心,如何解题有一个深度的了解!更能体会到大厂面试的套路。原创 2022-05-13 09:53:45 · 326 阅读 · 0 评论 -
算法分享系列No.6---DFS--二叉树的对称 & 二叉树的镜像
一、该题基础信息列表题目难易分类【easy】【middle】【hard】 题目频率(牛客有考察次数)【高频】(10<=考察次数)【中频】(2 <=考察次数< 10) 【普通】题序号【1】树的对称判定 101. 对称二叉树【easy】剑指 Offer 28. 对称的二叉树【easy】 NC16对称的二叉树【easy】【高频】题序号【2】树的镜像 剑指 Offer 27. 二叉树的镜像【easy】 NC72二叉树的镜像【easy】【中频】原创 2022-05-12 11:36:17 · 329 阅读 · 0 评论 -
大厂面试问答题汇总分析---数据库(索引-聚集/非聚集,事务,mySql, 锁)
概述摘要:1、【数据库】相关题目在历届大厂面试中占比20%到30%之间 【根据600多道大厂面试题】,有的公司该类题目占比比例会更高。本文梳理就是针对高频题目和相关知识点的梳理学习,包含高频问题和相关所有答案。2、其中包含 MySql, SqlServer, SQL,以及Redis(本质是内存数据库,但redis知识点太多,专门一篇文章梳理)等。面试题目考察频次列表(仅以本次大厂面经提供题目,进行归纳分析,作为样本)【超高频】 考察次数 > 5 【高频】 5 >=原创 2022-05-11 21:41:37 · 623 阅读 · 0 评论 -
算法分享系列No.5----DFS-- 树的深度 / 平衡树的判定
算法分享系列No.5----DFS-- 树的深度 / 平衡树的判定(根据树的深度进行判定)二叉树的深度为:根节点到最远叶子节点的最长路径上的节点数最小深度:是从根节点到最近叶子节点的最短路径上的节点数量。平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。DFS:深度优先搜索递归过程,最重要的就是查看能不能讲原本的问题分解为更小的子问题,这是使用递归的关键。原创 2022-05-11 17:03:23 · 434 阅读 · 0 评论 -
算法分享系列No.4----二叉树的层序遍历(从上到下,从下到上,之字/锯齿/蛇形)
算法分享系列No.4----二叉树的层序遍历(从上到下,从下到上,之字/锯齿/蛇形)二叉树的遍历(层序 和 异形层序)均为极其普遍应用。更是大厂算法笔试题常考经典题之一,这题据身边大厂朋友反馈,笔试频率非常高(尤其是 之字/锯齿/蛇遍历)。非常经典,且有一定代码量,即能考察程序员的基础也能有一定的拔高,请务必熟练掌握 层序 和 异形层序 遍历。原创 2022-05-09 22:03:49 · 563 阅读 · 0 评论 -
算法分享系列No.3----实现二叉树的先序,中序和后序遍历
算法分享系列No.3----实现二叉树的先序,中序和后序遍历本题考点:【树】【哈希】【栈】遍历是对树的一种最基本的运算,所谓遍历二叉树,就是按一定的规则和顺序走遍二叉树的所有节点,使每一个节点都被访问一次,而且只被访问一次。由于二叉树是非线性结构,因此,树的遍历实质上是将二叉树的各个结点转换成为一个线性序列来表示。二叉树的遍历主要有三种,括号内为其特点:(1)先(根)序遍历(根左右)(2)中(根)序遍历(左根右)(3)后(根)序遍历(左右根)原创 2022-05-08 22:48:56 · 816 阅读 · 0 评论 -
算法分享系列No.2---- LRU缓存结构
该题基础信息列表题目难易分类【easy--】【middle】【hard—】题目频率(牛客有考察次数)【高频】(10<=考察次数) 【中频】(2 <=考察次数 < 10) 【普通】反转链表 LeetCode 牛客【题库--算法篇--面试高频榜单】题序号 206. 反转链表NC78 反转链表难度 & 频次 【easy--】 【easy--】【高频】一、【反转链表】编程练习目标:务必要熟练手写,目前大厂面试分两种模式:模式一:只...原创 2022-05-08 18:11:36 · 670 阅读 · 0 评论 -
大厂面试---Redis面试题(含答案,相关知识点,面试考察次数统计)
概述摘要:Redis(本质是内存数据库),【数据库】相关题目在历届大厂面试中占比20%到30%之间 【根据600多道大厂面试题】,有的公司该类题目占比比例会更高。本文梳理就是针对高频题目和相关知识点的梳理学习,包含高频问题和相关所有答案。面试题目考察频次列表(仅以本次大厂面经提供题目,进行归纳分析,作为样本)【超高频】 考察次数 > 5 【高频】 5 >= 考察次数 > 3 【中频】 3 >= 考察次数 > 1 【普通】 考察次数原创 2022-05-06 23:53:17 · 955 阅读 · 0 评论 -
算法分享系列No.1---- 反转链表
该题基础信息列表题目难易分类【easy--】【middle】【hard—】 题目频率(牛客有考察次数)【高频】(10<=考察次数)【中频】(2 <=考察次数< 10) 【普通】反转链表 LeetCode 牛客【题库--算法篇--面试高频榜单】 题序号 206. 反转链表 NC78反转链表 难度 & 频次 【easy--】 【easy--】【高频】 一、【反转链表】编程练习目标:务必要熟练手写,目前大厂...原创 2022-05-05 14:45:19 · 796 阅读 · 0 评论 -
程序员算法学习之路---初衷
程序员算法学习之路---初衷| 大厂算法题面试|刷题积累|复盘学习原创 2022-05-04 12:44:08 · 322 阅读 · 0 评论