
刷题
文章平均质量分 57
啊西边的瓜
这个作者很懒,什么都没留下…
展开
-
西瓜仔刷题集5--剑指offer(51-60题)
剑指offer原创 2022-07-11 17:13:29 · 223 阅读 · 0 评论 -
西瓜仔刷题集4--剑指offer(41-50题)
40.和为S的连续正数序列 【22.5.14 中等】 解题思路:类似于TCP协议的滑动窗口协议 使用left和right两个变量来代替滑动窗口的左边界和右边界。 核心while循环的条件是:只要左边界 小于 目标值的一半就要进入循环,只要不小于循环结束,说明此时已经找到完了。 定义temp变量,用来存放滑动窗口中的所有元素的和。 当temp小于target的值的时候,右边界向右扩一个。 当temp大于target的时候,左边向右一个 var findContinuousSequence = functio原创 2022-05-30 22:00:40 · 315 阅读 · 0 评论 -
西瓜仔刷题集3--剑指offer(31-40题)
剑指offer原创 2022-05-14 13:31:17 · 177 阅读 · 0 评论 -
【刷题】33.求第n个丑数
转自:https://www.cnblogs.com/dpnlp/p/yongjs-shua-jian-zhioffer-chou-shu.html 题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路 通俗易懂的解释: 首先从丑数的定义我们知道,一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x * 3 ^ y * 5 ^ z,换句话说一个丑数一定由另一个原创 2022-04-27 17:38:48 · 216 阅读 · 0 评论 -
西瓜仔刷题集2--剑指offer(21-30题)
【2022.3.31】21. 给出栈的压入序列,判断第二个是否为弹出序列(需要注意:辅助栈是用js中的数据来模拟的)原创 2022-04-25 10:31:57 · 123 阅读 · 0 评论 -
27--输出给定字符串的排列【4.12】--待解决
**思想:**不断地去字符串数组里面拿一个字符,从剩余的字符串选择一个拼接字符串,每拿一个减去一个;当字符串数组被拿空时,就把结果添加进结果数组里,然后回溯上一层,(通过往数组加回去字符以及拼接的字符串减少一个来回溯。) 算法步骤: 1.遍历字符串数组里面拿一个字符, 把该字符加入到result arr定义为:ABCD: 取出A; rusult先把A放进去 2.原数组减去当前正在遍历的字符 arr变成了:BCD; 3.对于减去该字符的arr,递归perm方法;如此循环递归,跳出条件为:当index为le原创 2022-04-22 16:47:02 · 223 阅读 · 0 评论 -
26--二叉搜索树与双向链表【4.9】
先对左子树调整为双向链表, 并用变量pLast指向最后一个节点 再将中间节点和pLast连起来 再去调整右子树 中序遍历递归:才能让二叉树变成有序的链表原创 2022-04-09 20:16:33 · 373 阅读 · 0 评论 -
25-复杂链表的复制
题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 题意分析: 题目里面说明,不要返回结点的引用,如果这样做了会返回为空。其实说的就是浅拷贝 深拷贝和浅拷贝的区别如下: 简单的来说就是,在有指针的情况下, 浅拷贝只是增加了一个指针指向已经存在的内存(实际指向同一内存) 深拷贝就是增加一个指针并且申请一个新的内存,使这个原创 2022-04-07 16:36:54 · 383 阅读 · 0 评论 -
23.二叉搜索树的后序遍历序列(不明白边界条件)
//最后一个元素是根节点root; //除去root后的序列,前面是根节点的左子树left,后面是根节点的右子树right; //左子树序列一定都要比root小,右子树序列一定都要比root大. //对左子树和右子树的序列同样满足以上三点 function VerifySquenceOfBST(sequence) { let result,l1; l1=sequence.length; if(l1==0) return false; if(l1==1) return true; result原创 2022-04-01 15:16:14 · 540 阅读 · 1 评论 -
js刷题: 顺时针打印矩阵
let result=[]; function printMatrix(matrix) { let x1=0; let y1=0; let x2=matrix.length-1; let y2=matrix[0].length-1; while(x1<=x2&&y1<=y2){ let result=Print(matrix,x1++,y1++,x2--,y2--); } return resul...原创 2022-03-30 15:35:53 · 302 阅读 · 0 评论 -
西瓜仔刷题集1--剑指offer(1-20题)
1.在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。【2022.3.16】 选择最左下角的那个点作为起始点, 也就是a[array.lenth][0],比它大就往右边走, 比它小就往上面走。 2.请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。【2022.3.16】 return原创 2022-03-16 11:24:48 · 410 阅读 · 1 评论