剑指Offer
Rong_Jie
这个作者很懒,什么都没留下…
展开
-
JZ43 整数中1出现的次数(从1到n整数中1出现的次数)
输入一个整数 n ,求 1~n 这 n 个整数的十进制表示中 1 出现的次数例如, 1~13 中包含 1 的数字有 1 、 10 、 11 、 12 、 13 因此共出现 6 次注意:11 这种情况算两次原创 2022-08-13 13:39:05 · 175 阅读 · 1 评论 -
JZ39 数组中出现次数超过一半的数字
例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。数据范围:n \le 50000n≤50000,数组中元素的值 0 \le val \le 100000≤val≤10000。给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。...原创 2022-08-13 00:15:33 · 116 阅读 · 0 评论 -
JZ20 表示数值的字符串
str 仅含英文字母(大写和小写),数字(0-9),加号 ‘+’ ,减号 ‘-’ ,空格 ’ ’ 或者点 ‘.’。例如,字符串[“+100”,“5e2”,“-123”,“3.1416”,“-1E-16”]都表示数值。但是[“12e”,“1a3.14”,“1.2.3”,“±5”,“12e+4.3”]都不是数值。3.(可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个整数(可正可负)2.(可选)一个符号字符(‘+’ 或 ‘-’)2.(可选)一个符号字符(‘+’ 或 ‘-’)输入:“123.45e+6”...原创 2022-08-07 22:44:33 · 120 阅读 · 0 评论 -
JZ51 数组中的逆序对
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。原创 2022-07-30 10:55:01 · 91 阅读 · 0 评论 -
JZ19 正则表达式匹配
说明因为这里c为0个,a被重复一次,*表示零个或多个a。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab。2.pattern只包含从a-z的小写字母以及字符.和。”表示可匹配零个或多个(‘*’)任意字符(‘.’)a"匹配,但是与"aa.a"和"ab*a"均不匹配。可以出现任意次的a,所以可以出现1次a,能匹配上。1.模式中的字符’.‘表示任意一个字符。输入“aaab”,“a。输入“aaa”,"a。输入“aad”,“c。...原创 2022-07-24 21:51:55 · 153 阅读 · 0 评论 -
JZ44 数字序列中某一位的数字
数字以0123456789101112131415…的格式作为一个字符序列,在这个序列中第2位(从下标0开始计算)是2,第10位是1,第13位是1,以此类题,请你输出第n位对应的数字。数据范围0\len\le10^9\0≤n≤10。原创 2022-07-24 09:29:47 · 203 阅读 · 0 评论 -
JZ38 字符串的排列
例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。输入一个长度为n字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。原创 2022-07-23 22:22:15 · 254 阅读 · 0 评论 -
JZ11 旋转数组的最小数字
有一个长度为n的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。原创 2022-07-23 11:19:31 · 82 阅读 · 0 评论 -
JZ53 数字在升序数组中出现的次数
数据范围0\len\le1000,0\lek\le1000≤n≤1000,0≤k≤100,数组中每个元素的值满足0\leval\le1000≤val≤100。给定一个长度为n的非降序数组和一个非负数整数k,要求统计k在数组中出现的次数。要求空间复杂度O(1)O(1),时间复杂度O(logn)O(logn)...原创 2022-07-21 23:48:39 · 95 阅读 · 0 评论 -
JZ68 二叉搜索树的最近公共祖先
1.对于该题的最近的公共祖先定义对于有根树T的两个节点p、q,最近公共祖先LCA(T,p,q)表示一个节点x,满足x是p和q的祖先且x的深度尽可能大。2.二叉搜索树是若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值。3.所有节点的值都是唯一的。...原创 2022-07-17 21:09:30 · 64 阅读 · 0 评论 -
JZ8 二叉树的下一个结点
给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的next指针。原创 2022-07-10 11:26:07 · 101 阅读 · 0 评论 -
JZ26 树的子结构
输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构)原创 2022-06-25 16:37:48 · 62 阅读 · 0 评论 -
JZ54 二叉搜索树的第k个节点
给定一棵结点数为n 二叉搜索树,请找出其中的第 k 小的TreeNode结点值。1.返回第k小的节点值即可2.不能查找的情况,如二叉树为空,则返回-1,或者k大于n等等,也返回-13.保证n个节点的值不一样数据范围: 0 \le n \le10000≤n≤1000......原创 2022-06-09 00:10:19 · 89 阅读 · 0 评论 -
JZ77 按之字形顺序打印二叉树
给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)原创 2022-06-07 00:03:07 · 124 阅读 · 0 评论 -
JZ76 删除链表中重复的结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5原创 2022-06-06 01:39:40 · 71 阅读 · 0 评论 -
JZ35 复杂链表的复制
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 下图是一个含有5个结点的复杂链表。图中实线箭头表示next指针,虚线箭头表示random指针。为简单起见,指向null的指针没有画出。...原创 2022-06-06 01:05:32 · 75 阅读 · 0 评论 -
JZ6从尾到头打印链表
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0原创 2022-06-05 19:53:49 · 150 阅读 · 0 评论