剑指offer
莫非的Java
这个作者很懒,什么都没留下…
展开
-
剑指Offer 面试题9
//面试题09. 用两个栈实现队列 //用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead , //分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) package array; import java.util.Stack; /** * Your CQueue object will be instantiated and called as such: * CQueue ob原创 2020-07-31 11:09:02 · 88 阅读 · 0 评论 -
剑指Offer第35题复杂链表的复制 Java实现剑指Offer两种思路,HashMap方法和无需辅助空间方法
面试题35. 复杂链表的复制 请实现 copyRandomList 函数,复制一个复杂链表。 在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 解题思路:这个复制过程可以分成两步:第一步是复制原始链表上的每个节点,并用next指针相连; 第二步是设置每个节点的random指针。 第一步的实现较为简单,第二步,对于一个n...原创 2020-05-07 20:04:15 · 157 阅读 · 0 评论 -
剑指offer 面试题25. 合并两个排序的链表 Java三种双百实现代码
面试题25. 合并两个排序的链表 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 限制:0 <= 链表长度 <= 1000 双百解法一:迭代法 修改原有链表的指向 推荐!!!! 设l1为 1->3->...原创 2020-04-22 00:05:55 · 204 阅读 · 0 评论 -
剑指offer 面试题18. 删除链表的节点 Java实现 Leecode解法 和剑指offer O(1)复杂度解法(改进版) 原理及代码实现
一、先来看Leecode上的题目要求 面试题18. 删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1:输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 ->...原创 2020-04-13 16:14:40 · 181 阅读 · 0 评论 -
剑指offer 面试题17. 打印从1到最大的n位数 考虑大数问题时的Java实现
面试题17. 打印从1到最大的n位数 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n = 1 输出: [1,2,3,4,5,6,7,8,9] 说明:用返回一个整数列表来代替打印 n 为正整数 1.前两种方法是解决n取值较小的情况 Java代码如下: //不调用pow函数 public ...原创 2020-04-11 22:07:07 · 138 阅读 · 0 评论