![](https://img-blog.csdnimg.cn/2020092314390415.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
剑指Offer
剑指Offer
黑色落雪
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 24. 反转链表
题目描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 解法 java class Solution { public ListNode reverseList(ListNode head) { ListNode pre = null原创 2020-10-13 13:59:14 · 91 阅读 · 0 评论 -
剑指 Offer 18. 删除链表的节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入: head = [4,5,1,9], val = 1 输出: [4,5,9] 解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该原创 2020-10-12 13:23:01 · 123 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:1 示例 2: 输入:n = 5 输出:5 提示: 0原创 2020-10-09 17:06:26 · 82 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 <= 链表长度 <= 10000 解题思路1: 使用数组 创建一个节点p指向链表头,第一次遍历获取链表的大小 创建一个数组来存放返回值,大小正好是链表的大小 遍历链表,每循环一个值,就向数组里从后往前依次添加 Java class Solution { public int[] reversePrint(ListNode原创 2020-09-24 10:44:43 · 46 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 <= s 的长度 <= 10000 解题思路1 : 使用数组 创建一个字符数组用来存放结果,长度为s的长度的3倍 遍历字符串,判断每一个字符,如果不是空格,就直接添加到数组里,size+1,否则,就把%20加到数组里,size+3 class Solution { public String原创 2020-09-23 22:04:25 · 44 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数, 判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ] 给定 target = 5,返回 t原创 2020-09-23 16:11:40 · 83 阅读 · 1 评论 -
剑指 Offer 03. 数组中重复的数字
找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请 找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 限制: 2 <= n <= 100000 Related Topics 数组 哈希表 解法思路: 创建一个set集合存放遍历过后的数字 遍历数组,判断该数字在set中有没有出现过,如果有,直接retur原创 2020-09-23 14:51:38 · 67 阅读 · 0 评论