剑指offer
剑指offer题解
寒酥-
这个作者很懒,什么都没留下…
展开
-
07-重建二叉树
重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] // 返回如下的二叉树 3 / \ 9 20 / \ 15 7 1:递归 前序遍历:根节点->左子树->右子树;中序遍历:左子树->根节点->右子树 即:前序遍历中第一个元原创 2020-06-30 23:15:13 · 91 阅读 · 0 评论 -
06-从尾到头打印链表
从尾到头打印链表 题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 输入:head = [1,3,2] 输出:[2,3,1] 1:栈 最终的返回结构是数组,考虑到栈为先进后出 即:将链表先加入到栈中,后弹出栈中元素加入到返回的数组内 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; *原创 2020-06-30 23:14:22 · 102 阅读 · 0 评论 -
05-替换空格
替换空格 题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 输入:s = "We are happy." 输出:"We%20are%20happy." 1:遍历 遍历整个字符串,当遇到空格时替换为%20 class Solution { public String replaceSpace(String s) { StringBuilder res = new StringBuilder(); int len = s.le原创 2020-06-30 23:13:34 · 89 阅读 · 0 评论 -
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] ] 给定 tar原创 2020-06-30 23:12:36 · 87 阅读 · 0 评论 -
03-数组中重复数字
数组中重复数字 题目描述 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 1:排序 先将数组排序 遍历数组,找到出现两次以上的元素 class Solution { public int findRepeatNumber(int[] nums) { A原创 2020-06-30 23:11:46 · 104 阅读 · 0 评论