![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JZ
errly_liu2828
男猫,敲代码的猫,学习C语言中,渴望得到力量
展开
-
剑指Offer——JZ17 树的子结构
描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)输入:{8,8,#,9,#,2,#,5},{8,9,#,2}返回值:trueclass Solution {public: bool isSub(TreeNode* p1, TreeNode* p2) { if (!p2) return true; else if (!p1) return false; // p1 和 p2 的根节点相同并且 p1 和 p2原创 2021-08-24 21:40:52 · 68 阅读 · 0 评论 -
剑指Offer——JZ16 合并两个排序的链表
描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则输入:{1,3,5},{2,4,6}返回值:{1,2,3,4,5,6}/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge(ListNode* pHead1,原创 2021-08-24 20:33:11 · 88 阅读 · 0 评论 -
剑指Offer——JZ15 反转链表
描述输入一个链表,反转链表后,输出新链表的表头输入:{1,2,3}返回值:{3,2,1}/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNode *pre = nullpt原创 2021-08-24 20:22:44 · 104 阅读 · 0 评论 -
剑指Offer——JZ14 链表中倒数最后k个结点
描述输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为 0 的链表。输入:{1,2,3,4,5},1返回值:{5}/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */class Solution {public: /**原创 2021-08-24 19:58:26 · 102 阅读 · 0 评论 -
剑指Offer——JZ13 调整数组顺序使奇数位于偶数前面
描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。输入:[1,2,3,4]返回值:[1,3,2,4]class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型vector * @return原创 2021-08-23 21:31:43 · 69 阅读 · 0 评论 -
剑指Offer——JZ12 数值的整数次方
描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。输入:2.00000,3返回值:8.00000输入:2.00000,-2返回值:0.25000class Solution {public: double Power(double base, int exponent) { double a原创 2021-08-23 21:23:49 · 62 阅读 · 0 评论 -
剑指Offer——JZ11 二进制中1的个数
描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。输入:10返回值: 2class Solution {public: int NumberOf1(int n) { int res = 0; for (int i = 0; i < 32; i++) res += (n >> i) & 1; return res; }};...原创 2021-08-23 21:22:11 · 68 阅读 · 0 评论 -
剑指Offer——JZ10 矩形覆盖
描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,从同一个方向看总共有多少种不同的方法?比如n=3时,2*3的矩形块有3种不同的覆盖方法(从同一个方向看):输入描述2*1的小矩形的总个数n返回值描述覆盖一个2*n的大矩形总共有多少种不同的方法(从同一个方向看)输入: 0返回值: 0输入: 1返回值: 1输入: 4返回值: 5class Solution {public: int rectCover(int原创 2021-08-23 21:21:17 · 85 阅读 · 0 评论 -
剑指Offer——JZ9 跳台阶扩展问题
描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。输入: 3返回值: 4class Solution {public: int jumpFloorII(int n) { if(n ==0 || n == 1) return 1; return pow(2, n-1); }};...原创 2021-08-23 21:18:47 · 99 阅读 · 0 评论 -
剑指Offer——JZ8 跳台阶
描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。输入:2返回值:2 class Solution {public: int jumpFloor(int number) { if(number == 1) return 1; int a = 1, b = 1, c; for(int i=2; i<=number; ++i){原创 2021-08-23 21:17:41 · 91 阅读 · 0 评论 -
剑指Offer——JZ7 斐波那契数列
描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n≤39示例1输入:4返回值: 3递归:class Solution {public: int Fibonacci(int n) { if(n == 0 || n == 1){ return n; } else return Fibonacci(n-1) + Fibonacci(n-2); }};记忆化搜索: class S原创 2021-08-23 17:16:58 · 77 阅读 · 0 评论 -
剑指Offer——JZ6 旋转数组的最小数字
描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。输入:[3,4,5,1,2]返回值:1class Solution {public: int minNumberInRotateArray(vector<int> rotateArray) { int left = 0, right = rotateArray.siz原创 2021-08-23 15:08:47 · 71 阅读 · 0 评论 -
剑指Offer——JZ5 用两个栈实现队列
描述用两个栈来实现一个队列,分别完成在队列尾部插入整数(push)和在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。示例:输入:[“PSH1”,“PSH2”,“POP”,“POP”]返回:1,2解析:“PSH1”:代表将1插入队列尾部“PSH2”:代表将2插入队列尾部"POP“:代表删除一个元素,先进先出=>返回1"POP“:代表删除一个元素,先进先出=>返回2class Solution{public:原创 2021-08-23 14:51:54 · 67 阅读 · 0 评论 -
剑指Offer——JZ4 重建二叉树
描述给定某二叉树的前序遍历和中序遍历,请重建出该二叉树并返回它的头结点。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。提示:1.0 <= pre.length <= 20002.vin.length == pre.length3.-10000 <= pre[i], vin[i] <= 100004.pre 和 vin 均无重复元素5.vin出现的元素均出现在 pre里6.只需要返回根结点原创 2021-08-22 20:06:05 · 85 阅读 · 0 评论 -
剑指Offer——JZ3 从尾到头打印链表
描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*原创 2021-08-22 19:13:06 · 77 阅读 · 0 评论 -
剑指Offer——JZ2 替换空格
描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ string replaceSp原创 2021-08-21 20:21:23 · 74 阅读 · 0 评论 -
剑指Offer——JZ1 二维数组中的查找
JZ1 二维数组中的查找描述在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target = 7,返回 true。给定 target = 3,返回 false。0 <= array.length <= 5000 <=原创 2021-08-21 15:17:27 · 55 阅读 · 0 评论