
应聘
文章平均质量分 90
应聘
进朱者赤
阿里非典型程序员一枚:微信公众号同名,记录平平无奇程序员在大厂的打怪升级之路。
Java、大数据、数据结构算法
展开
-
【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)
通过动态规划计算回文子串算法稳定可靠需要额外的二维数组存储状态O(n^2)O(n^2),中心扩展法通过扩展中心位置计算回文子串具有较高效率对空间的使用较低O(n^2)O(1)原创 2024-04-09 18:33:09 · 2785 阅读 · 15 评论 -
【经典算法】LeetCode25:K 个一组翻转链表(Java/C/Python3,Hard)
递归法迭代+原地反转方法思路将链表划分为大小为k的子链表,递归处理使用循环迭代遍历链表,并在每次迭代中原地反转子链表时间复杂度O(n),每个节点被遍历一次O(n),每个节点被遍历一次空间复杂度O(n/k),递归调用栈的深度O(1),原地修改链表(如果递归栈的深度达到n/k,则创建了O(n/k)个递归调用栈帧)(不需要额外的空间,仅使用常数级别的指针变量和变量存储空间)优点实现简单,逻辑清晰不需要额外的递归调用栈,适用于大规模链表代码可读性好原地修改链表,不需要额外空间。原创 2024-04-07 09:03:34 · 1100 阅读 · 0 评论 -
阿里巴巴25届实习生内推
2025届 阿里巴巴实习生内推(内推开始啦)原创 2024-04-03 18:08:47 · 770 阅读 · 14 评论 -
【经典算法】LeetCode101:对称二叉树(Java/C/Python3实现含注释说明,Easy)
方法优点缺点时间复杂度空间复杂度递归法- 直观易懂- 代码相对简洁- 可能导致函数调用栈溢出的风险- 需要额外的空间来存储函数调用栈O(n)O(n)队列法- 不会导致函数调用栈溢出的风险- 无需递归,代码较为直观- 灵活的节点入队和出队顺序- 需要手动维护队列数据结构和追踪节点的层次- 需要额外的空间来存储队列和节点的信息O(n)O(m)原创 2024-04-03 13:00:00 · 1677 阅读 · 0 评论 -
【经典算法】LeetCode 20:有效的括号(Java/C/Python3实现含注释说明,Easy)
对比点递归法栈解法思路直观性直观相对复杂递归深度问题可能存在递归深度过大导致栈溢出的风险无递归深度限制利用系统调用栈是否时间复杂度O(n)O(n)空间复杂度O(n)O(n)实现复杂性相对简单相对复杂额外空间需求无有。原创 2024-04-02 07:57:01 · 765 阅读 · 0 评论 -
【经典算法】LeetCode 21:合并两个有序链表Java/C/Python3实现含注释说明,Easy)
递归和迭代都可以用来解决将两个有序链表合并的问题。递归解法迭代解法优点简洁,易于理解和实现不涉及函数递归调用,避免递归开销和栈溢出问题缺点可能产生多个函数调用,涉及函数调用开销和栈溢出问题需要使用额外变量保存当前节点,增加代码复杂性时间复杂度O(m+n),其中m和n分别是两个链表的长度O(m+n),其中m和n分别是两个链表的长度空间复杂度O(m+n),其中m和n分别是两个链表的长度O(1)在实际应用中,如果链表较长,特别是超过系统栈的容量,采用迭代解法更为安全。原创 2024-04-01 09:00:40 · 1771 阅读 · 0 评论 -
【经典算法】LeetCode1:两数之和(Java/C/Python3实现含注释说明,Easy)
两数之和的三种解法思路,以及java和c和python的解法很详细,原创 2024-03-31 12:09:16 · 764 阅读 · 0 评论 -
【经典算法】LeetCode14:最长公共前缀(Java/C/Python3实现含注释说明,Easy)
最长公共前缀(LeetCode 14,Easy)的4种经典解法:横向扫描,纵向扫描,分治法,二分法,以及java,C,python的3种语言的实现原创 2024-03-31 11:18:49 · 1342 阅读 · 0 评论 -
必会的10个经典算法题(附解析答案代码Java/C/Python看这一篇就够)
常见的数据结构与算法题目,涵盖了数组、链表、栈、队列、二叉树、哈希表、字符串、图、排序和查找等方面的考察点。每个题目都附带有LeetCode的链接,可以点击链接了解更多题目详情。原创 2024-03-29 17:29:56 · 7239 阅读 · 1 评论 -
JAVA后端开发面试题库
● 1. 进程的有哪几种状态,状态转换图,及导致转换的事件。● 2. 进程与线程的区别。● 3. 进程通信的几种方式。● 4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)● 5. 线程的实现方式. (也就是用户线程与内核线程的区别)● 6. 用户态和核心态的区别。● 7. 用户栈和内核栈的区别。● 8. 内存池、进程池、线程池。(c++程序员必须掌握)● 9. 死锁的概念,导致死锁的原因.● 10. 导致死锁的四个必要条件。原创 2024-03-26 20:48:19 · 1334 阅读 · 0 评论