![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题记录
刷一些题..
jiao_yk
这个作者很懒,什么都没留下…
展开
-
剑指offer-JZ4重建二叉树
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:1059991本题知识点: 树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。代码/* function TreeNode(x) { this.val = x; this.left = n.原创 2020-07-29 20:48:00 · 121 阅读 · 0 评论 -
剑指offer-JZ35数组中的逆序对
时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 32M,其他语言64M热度指数:577791本题知识点: 数组题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于.原创 2020-07-31 00:11:11 · 167 阅读 · 0 评论 -
剑指offer-JZ22从上往下打印二叉树
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:589354本题知识点: 队列 树题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。代码/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function PrintFromTopToBottom(root){ if(root === nu.原创 2020-07-30 21:31:54 · 140 阅读 · 0 评论 -
剑指offer-JZ58对称的二叉树
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:302622本题知识点: 树题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。代码/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function isSymmetrical(pRoot){.原创 2020-07-30 20:24:35 · 161 阅读 · 0 评论 -
剑指offer-JZ26二叉搜索树与双向链表
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:458676本题知识点: 链表 树题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。代码/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function Convert(pRootOfTr.原创 2020-07-30 19:22:59 · 193 阅读 · 0 评论 -
剑指offer-JZ16合并两个排序的链表
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:805773本题知识点: 链表题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。代码递归:/*function ListNode(x){ this.val = x; this.next = null;}*/function Merge(pHead1, pHead2){ if(pHead1 === null) {ret.原创 2020-07-30 17:47:01 · 126 阅读 · 0 评论 -
剑指offer-JZ15反转链表
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:824838本题知识点: 链表题目描述输入一个链表,反转链表后,输出新链表的表头。代码/*function ListNode(x){ this.val = x; this.next = null;}*/function ReverseList(pHead){ //反转链接即pre->1->2->3->4反转成pre<-1<-2<-3.原创 2020-07-30 17:10:06 · 147 阅读 · 0 评论 -
剑指offer-JZ46孩子们的游戏(圆圈中最后剩下的数)
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:336444本题知识点: 链表 数学题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1.原创 2020-07-30 00:32:41 · 182 阅读 · 0 评论 -
剑指offer-JZ36两个链表的第一个公共结点
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:377198本题知识点: 链表题目描述输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)代码/*function ListNode(x){ this.val = x; this.next = null;}*/function FindFirstCommonNode(pHead1, pHead2){.原创 2020-07-29 22:21:55 · 206 阅读 · 3 评论 -
剑指offer-JZ55链表中环的入口结点
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:355664本题知识点: 链表题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。代码/*function ListNode(x){ this.val = x; this.next = null;}*/function EntryNodeOfLoop(pHead){ if(!pHead || !pHead.next || !pHead.n.原创 2020-07-29 22:07:08 · 162 阅读 · 0 评论 -
剑指offer-JZ39平衡二叉树
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:336552本题知识点: 树题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树代码/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function IsBalanced_Solution(pRo.原创 2020-07-29 20:06:15 · 114 阅读 · 0 评论 -
剑指offer-JZ57二叉树的下一个结点
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:328729本题知识点: 树题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。代码/*function TreeLinkNode(x){ this.val = x; this.left = null; this.right = null; this.next = null;.原创 2020-07-28 16:52:13 · 126 阅读 · 0 评论 -
剑指offer-JZ60把二叉树打印成多行
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:275026本题知识点: 队列 树题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。代码/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function Print(pRoot){ if(pRoot === null) {ret.原创 2020-07-28 15:21:58 · 127 阅读 · 0 评论 -
剑指offer-JZ21栈的压入、弹出序列
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:566144本题知识点: 栈题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)代码function IsPopOrder(pushV, po.原创 2020-07-27 22:18:01 · 105 阅读 · 0 评论 -
剑指offer-JZ31整数中1出现的次数(从1到n整数中1出现的次数)
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:325443本题知识点: 查找 数学题目描述求出1-13的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下113中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。代码function NumberOf1Bet.原创 2020-07-27 21:28:38 · 200 阅读 · 0 评论 -
剑指offer-JZ42和为S的两个数字
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:378687本题知识点: 数学 数组 双指针题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。代码 function FindNumbersWithSum(array, sum) { let arr = []; .原创 2020-07-27 19:56:53 · 174 阅读 · 0 评论 -
剑指offer-JZ11二进制中1的个数
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:659564本题知识点: 进制转化 补码反码原码 数学题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。代码function NumberOf1(n){ let sum = 0, flag = 1; while(flag){ if(n&flag){ sum++; } fla.原创 2020-07-27 18:31:35 · 105 阅读 · 0 评论 -
剑指offer-JZ12数值的整数次方
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:683626本题知识点: 数学题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0代码function Power(base, exponent){ if(base === 0) {return 0;} if(exponent === 0) {return 1;} .原创 2020-07-27 17:28:21 · 136 阅读 · 0 评论 -
剑指offer-JZ41和为s的连续正数序列
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:406490本题知识点: 穷举题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述输出所有.原创 2020-07-27 17:05:31 · 86 阅读 · 0 评论 -
剑指offer-JZ43左旋转字符串
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:347344本题知识点: 字符串题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!代码function LeftRotateString(str, n).原创 2020-07-27 16:26:16 · 126 阅读 · 0 评论 -
剑指offer-JZ45扑克牌顺子
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:351171本题知识点: 字符串题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为.原创 2020-07-27 15:56:46 · 124 阅读 · 0 评论 -
剑指offer-JZ10矩形覆盖
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:494958本题知识点: 递归题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?比如n=3时,2*3的矩形块有3种覆盖方法:代码function rectCover(number){ if(number === 0 || number === 1 || number === 2) {return num.原创 2020-07-27 01:48:20 · 150 阅读 · 0 评论 -
剑指offer-JZ8跳台阶
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:660073本题知识点: 递归题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。代码function jumpFloor(number){ if(number === 0 || number === 1 || number === 2) {return number;} return jumpFloor(.原创 2020-07-27 01:35:27 · 94 阅读 · 0 评论 -
剑指offer-JZ7斐波那契数列
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:882412本题知识点: 递归题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39代码function Fibonacci(n){ if(n === 0) {return 0;} if(n === 1 || n === 2) {return 1;} return Fibonacci(n.原创 2020-07-27 01:27:57 · 120 阅读 · 0 评论 -
剑指offer-JZ6旋转数组的最小数字
时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 32M,其他语言64M热度指数:970675本题知识点: 查找题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。代码 function minNumberInRotateArray(rota.原创 2020-07-27 01:16:57 · 136 阅读 · 0 评论 -
剑指offer-JZ28数组中出现次数超过一半的数字
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:576107本题知识点: 数组题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。代码 function MoreThanHalfNum_Solution(numbers) { // write code he.原创 2020-07-27 01:08:55 · 183 阅读 · 0 评论 -
剑指offer-JZ30连续子数组的最大和
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:412425本题知识点: 数组问题描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组.原创 2020-07-27 00:28:19 · 88 阅读 · 0 评论 -
剑指offer-JZ40数组中只出现一次的数字
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:398391本题知识点: 数组题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。代码function FindNumsAppearOnce(array){ // write code here // return list, 比如[a,b],其中ab是出现一次的两个数字 let res = []; for(let .原创 2020-07-26 21:41:50 · 207 阅读 · 0 评论 -
剑指offer-JZ37数字在排序数组中出现的次数
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:422413本题知识点: 数组题目描述统计一个数字在排序数组中出现的次数。代码function GetNumberOfK(data, k){ let num = 0; for(let i=0; i<data.length; i++){ if(data[i] === k){ num++; } } retu.原创 2020-07-26 21:23:43 · 120 阅读 · 0 评论 -
剑指offer-JZ47求1+2+3+...+n
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:295314本题知识点: 进制转化 数学题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。代码function Sum_Solution(n){ // write code here return n && n + Sum_Solution(n-1);}分析:利.原创 2020-07-26 21:20:58 · 171 阅读 · 0 评论 -
剑指offer-表示数值的字符串
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:280887本题知识点: 字符串题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。代码//s字符串function isNumeric(s){ // write code here .原创 2020-07-26 18:24:11 · 83 阅读 · 0 评论 -
剑指offer-JZ54字符流中第一个不重复的字符
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:256119本题知识点: 字符串问题描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述如果当前字符流没有存在出现一次的字符,返回#字符。//Init module if you needlet obj = {};fu.原创 2020-07-25 22:00:21 · 130 阅读 · 0 评论 -
剑指offer-JZ50数组中重复的数字
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:466763本题知识点: 数组题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。代码function duplicate(numbers, duplication){ .原创 2020-07-25 20:59:40 · 129 阅读 · 0 评论 -
剑指offer-JZ67剪绳子-noAccept
代码是对的,牛客的判题机一直不让过.要么就是pow函数的误差时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 64M,其他语言128M热度指数:150076本题知识点: 贪心题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],…,k[m]。请问k[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入.原创 2020-07-24 22:19:22 · 179 阅读 · 0 评论 -
剑指offer-JZ68数据流中的中位数
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:299774本题知识点: 进制转化 排序 堆题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。代码 let arr = []; function Ins.原创 2020-07-24 22:11:36 · 140 阅读 · 0 评论 -
剑指offer-JZ18二叉树的镜像
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:447215本题知识点: 树题目描述操作给定的二叉树,将其变换为源二叉树的镜像。代码function Mirror(root){ if(!root){return 0;} var temp = root.left; root.left = root.right; root.right = temp; Mirror(root.left); Mirro.原创 2020-07-22 20:55:45 · 133 阅读 · 0 评论 -
剑指offer-JZ38二叉树的深度
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:283761本题知识点: 树题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。方法一(递归)function TreeDepth(pRoot){ if(!pRoot) {return 0;} return 1 + Math.max(TreeDepth(pRoot.left), TreeDepth(pRo.原创 2020-07-22 20:33:01 · 89 阅读 · 0 评论 -
剑指offer-JZ5用两个栈实现队列
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:693955本题知识点: 队列 栈题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。代码var stack1 = [], stack2 = [];function push(node){ stack1.push(node);}function pop(){ if(stack2.length == 0){ if(st.原创 2020-07-22 20:00:33 · 93 阅读 · 0 评论 -
剑指offer-JZ9变态跳台阶
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:544977本题知识点: 贪心题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。代码function jumpFloorII(number){ // write code here if(number == 1) return 1; return 2 * jumpFloorII(number - 1);.原创 2020-07-21 22:16:36 · 130 阅读 · 0 评论 -
剑指offer-JZ48不用加减乘除做加法
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32M,其他语言64M热度指数:215717本题知识点: 进制转化 数学题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。代码function Add(num1, num2) { if(num1 === 0){ return num2; } if(num2 === 0){ return num1; } let A = nu.原创 2020-07-21 21:39:15 · 146 阅读 · 0 评论