随笔分类 - # 面试
【经典算法】LeetCode350:两个数组的交集 II(Java/C/Python3/JavaScript实现含注释说明,Easy)
摘要:#算法 标签:哈希表、数组 目录 题目描述思路及实现方式一:哈希表思路代码实现Java版本C语言版本Python3版本JavaScript版本 复杂度分析 方式二:排序 + 双指针思路代码实现Java版本C语言版本Python3版本JavaScript版本 复杂度分析 总结相似题目 题目描述 给你两
阅读全文
动态规划详解(Dynamic Programming)
摘要:目录 引入什么是动态规划?动态规划的特点解题办法解题套路框架举例说明斐波那契数列题目描述解题思路方式一:暴力求解思考 方式二:带备忘录的递归解法方式三:动态规划 推荐练手题目 引入 动态规划问题(Dynamic Programming)应该是很多人头疼的一类问题, 本文尝试探索一种套路帮助解决此类问
阅读全文
【经典算法】LeetCode 20:有效的括号(Java/C/Python3实现含注释说明,Easy)
摘要:有效的括号 题目思路及实现方式一:栈(推荐)思路代码实现Java版本C++版本(由于C语言需要自己实现栈较为繁琐,此处使用C++)Python3版本 复杂度分析 方式二:递归法思路代码实现Java版本C语言版本Python3版本 复杂度分析 总结相似题目 标签:栈|递归 题目 > 给定一个只包括 '
阅读全文
【经典算法】LeetCode 21:合并两个有序链表Java/C/Python3实现含注释说明,Easy)
摘要:合并两个有序链表 题目描述思路及实现方式一:迭代(推荐)思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式二:递归(不推荐)思路代码实现Java版本C语言版本Python3版本 复杂度分析 总结相似题目 标签:字符串处理、前缀判断 题目描述 将两个升序链表合并为一个新的 升序 链
阅读全文
【经典算法】LeetCode1:两数之和(Java/C/Python3实现含注释说明,Easy)
摘要:目录 题目思路及实现方式一:暴力解法(不推荐)思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式二:哈希表(推荐)思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式三:双指针法思路代码实现Java版本C语言版本Python3版本 复杂度分析 总结相似题目 标签
阅读全文
【经典算法】LeetCode14:最长公共前缀(Java/C/Python3实现含注释说明,Easy)
摘要:最长公共前缀 题目思路及实现方式一:横向扫描思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式二:纵向扫描思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式三:分治思路代码实现Java版本C语言版本Python3版本 复杂度分析 方式四:二分查找思路代码实现J
阅读全文
必会的10个经典算法题(附解析答案代码Java/C/Python看这一篇就够)
摘要:引言 常见的数据结构与算法题目,涵盖了数组、链表、栈、队列、二叉树、哈希表、字符串、图、排序和查找等方面的考察点。每个题目都附带有LeetCode的链接,可以点击链接了解更多题目详情 概述 类型题目考察点难度LeetCode链接数组两数之和哈希表、查找简单LeetCode 1链表合并两个有序链表链表
阅读全文
【经典算法】LeetCode 1143:最长公共子序列Java/C/Python3实现含注释说明,Medium)
摘要:最长公共子序列 题目思路及实现方式一:暴力递归(不推荐,但容易想到)思路代码实现Java版本优化:缓存优化记忆化搜索 C语言版本Python3版本 复杂度分析 方式二:动态规划(推荐)思路代码实现Java版本C语言版本Python3版本 复杂度分析 总结相似题目 标签:字符串处理、前缀判断 题目 给
阅读全文
JAVA后端开发面试题库
摘要:阿里面试官常用的题库 一、计算机基础&编程语言 1.1 操作系统 ● 1. 进程的有哪几种状态,状态转换图,及导致转换的事件。 ● 2. 进程与线程的区别。 ● 3. 进程通信的几种方式。 ● 4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解) ● 5. 线程的实现方式. (也就
阅读全文
【职场】关于跳槽涨薪30%?
摘要:或许你有没有觉察到,最近身边的某些同事开始变得“神秘”:反复点击一个页面,再迅速关掉,没过多久,又忍不住点开。 伴随消息提示的内容,他们的面部表情也在兴奋与失落间反复横跳。 等到自己经历之后,你或许会恍然大悟:每年到这个时候,身边有多少同事,都正在密谋跳槽。 01 2020到2021 从“求稳”到“
阅读全文
Java开发技术知识图谱
摘要:源文件下载: https://download.csdn.net/download/qq_30757161/85193618
阅读全文
面试神器:java进阶手册
摘要:JAVA面试学习资料/进阶学习《JAVA进阶手册》,压轴技能全攻略,面试高手带你嗨翻天。 预览: 原版PDF文件获取方式(免费) 扫下方二维码关注公众号(或者直接搜"进朱者赤"),关注后回复"1001",可免费获取,更能获取一手讯息
阅读全文
HashMap的时间复杂度分析
摘要:HashMap容器O(1)的查找时间复杂度只是其理想的状态,而这种理想状态需要由java设计者去保证。 在由设计者保证了链表长度尽可能短的前提下,由于利用了数组结构,使得key的查找在O(1)时间内完成。 可以将 HashMap分成两部分来看待,hash和map。map只是实现了键值对的存储。而其整
阅读全文
Java 内存模型& JVM 内存结构
摘要:这两个概念估计有不少人会混淆,它们都可以说是 JVM 规范的一部分,但真不是一回事!它们描述和解决的是不同问题,简单来说, Java 内存模型,描述的是多线程允许的行为JVM 内存结构,描述的是线程运行所设计的内存空间 JVM 是什么呢?它屏蔽了底层架构的差异性,是 Java 跨平台的依据,也是每个
阅读全文
Bean的作用范围的配置(重点)
摘要:Bean的作用范围的配置 scope 属性 :Bean的作用范围 singleton :默认的,Spring会采用单例模式创建这个对象。prototype :多例模式。(Struts2和Spring整合一定会用到)request :web项目中,Spring创建这个类以后,将这个类存入到requ
阅读全文
十大经典排序算法(动图演示)
摘要:十大经典排序算法(动图演示) 0、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线
阅读全文
Java中Char占用几个字节???
摘要:也许你看到的一些书上说Char占用2个字节,但事实真的的是这样吗? 非也: 与编码格式、中英文均有关系 uft8编码下占3个字节;GBK编码下占2个字节; 但是如果 char表示英文字母: 在uft8编码下占一个字节;在GBK编码下还是占2个字节;所以GBK编码下:char类型的值不管是英文还是中文
阅读全文
【HashMap】深入理解HashMap+ConcurrentHashMap的扩容策略
摘要:前言 理解HashMap和ConcurrentHashMap的重点在于: (1)理解HashMap的数据结构的设计和实现思路 (2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路 前面的文章已经介绍过Map结构的底层实现,这里我们重点放在其扩容方法, 这里分别对J
阅读全文