
剑指offer
文章平均质量分 76
Sheldon0105
这个作者很懒,什么都没留下…
展开
-
剑指offer—树
题目代号: 剑指 Offer 07. 重建二叉树题目描述:输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。测试用例:我的分析:1、因为之后我们需要一直知道每个节点在中序遍历中的位置,所以要把这个节点放入map中2、从前序遍历中拿出根节点3、找到根节点在中序遍历中的位置4、计算左子树的长度5、建立树,左子树递归,右子树递归(注意括号里的范围,左边界包括右边界不包括)代码:public TreeNode bui原创 2021-07-19 11:20:42 · 179 阅读 · 3 评论 -
剑指offer—动态规划
题目代号: 剑指 Offer 46. 把数字翻译成字符串题目描述:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。测试用例:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”我的分析:代码:public int tr原创 2021-07-16 18:02:31 · 163 阅读 · 1 评论 -
第十二届蓝桥杯
题目描述:使用二维数组打印一个10行杨辉三角。第一行有 1个元素, 第 n行有 n个元素每一行的第一个元素和最后一个元素都是 1从第三行开始, 对于非第一个元素和最后一个元素的元素。即:yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];我的分析:1.声明并初始化二维数组2.给数组的元素赋值 2.1给首末元素赋值 2.2给每行的非首末元素赋值3.遍历二维数组代码:public class Main8 { public st原创 2021-04-18 21:52:05 · 787 阅读 · 0 评论 -
剑指offer——链表
题目代号: 剑指 Offer 06. 从尾到头打印链表题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。测试用例:输入:head = [1,3,2]输出:[2,3,1]我的分析:放在栈里面,真的是极好的,因为这样就相当于倒序了代码:public class offer6 { public static void main(String[] args) { } public int[] reversePrint(ListNode h原创 2021-04-17 17:00:07 · 113 阅读 · 0 评论 -
剑指offer—字符串
题目代号: 剑指 Offer 05. 替换空格题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。测试用例:示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”我的分析:虽然这是一个字符串,但我们是可以一个一个字母的拿出来,当遇到空格的时候就替换,否则就直接加上代码:package 剑指offer;import java.io.BufferedReader;import java.io.IOException;im原创 2021-04-14 19:41:57 · 174 阅读 · 0 评论 -
剑指offer—其他
题目代号: 剑指 Offer 15. 二进制中1的个数题目描述:请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。其中负数用补码表示。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。测试用例:示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例 2:输入:00原创 2021-04-12 22:29:39 · 133 阅读 · 0 评论 -
剑指offer—数学
题目代号: 剑指 Offer 16. 数值的整数次方题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。测试用例:示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25我的分析:其实主要是指原创 2021-04-12 20:46:43 · 88 阅读 · 0 评论 -
剑指offer—栈和队列
题目代号: 剑指 Offer 09. 用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )测试用例:示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:原创 2021-04-12 16:22:15 · 103 阅读 · 0 评论 -
剑指offer—递归和循环
题目代号: 剑指 Offer 10- I. 斐波那契数列题目描述:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。测试用例:示例原创 2021-04-12 14:31:51 · 75 阅读 · 0 评论 -
剑指offer—回溯
回溯法的思想:在包含所有解的解空间树里面,我们从头开始来探索,当发现不满足结果的时候,就往回缩一步,还不满足就再缩,最终走通题目代号: 剑指 Offer 12. 矩阵中的路径题目描述:给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4原创 2021-04-11 22:24:24 · 156 阅读 · 0 评论 -
剑指offer—数组
题目代号: 剑指 Offer 03. 数组中重复的数字题目描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。测试用例:输入:7[2, 3, 1, 0, 2, 5, 3]输出:2 或 3我的分析:给它一排序,然后顺序访问就好了代码package 剑指offer;import java.util.Arrays;impo原创 2021-04-08 23:00:49 · 138 阅读 · 0 评论 -
JZ1
题目代号: 剑指offer1题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。测试用例:输入7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]返回值true说明存在7,返回true我的分析:现在我们面对一个二维数组,而且有规律,咱们就一行一行的来操作,当遍历第一行的时候,如果碰到了某个数的值原创 2021-03-30 21:54:07 · 94 阅读 · 0 评论