随笔分类 -  a) s剑指offer

摘要:最近遇到的几个有意思问题,记录分享一下。 1. 合并三个有序数组(合并K个有序数组) 假如有这么三个数组:(arr包含的三个数组) 问题:K个数组,总共N个元素,合并成一个有序数组。(以升序为例) 大家一眼看上去肯定会想到归并排序,合并两个有序数组是归并排序的最后一步的动作,通过两个指针引导比较大小 阅读全文
posted @ 2020-05-24 19:43 Lawliet__zmz 阅读(413) 评论(2) 推荐(0)
摘要:23:最小的k个数 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 简单题。。。。 24:连续子数组的最大和 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一 阅读全文
posted @ 2018-06-01 20:39 Lawliet__zmz 阅读(199) 评论(0) 推荐(0)
摘要:20:包含min函数的栈 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 感觉题目很无聊。。。我大js做这题就是方便,也让我深刻意识到相对其他语言js继承的强大性和灵活性。。。 function Permutation(str) { let ans = []; le 阅读全文
posted @ 2018-06-01 12:00 Lawliet__zmz 阅读(183) 评论(0) 推荐(0)
摘要:简单题,判断好每种情况,(原来剑指offer这个oj需要把js的函数写在给的solution函数里才能AC啊) 传说中的毒瘤题,曾经的一个大佬去google面试时现场没写出来,被google说滚蛋。。。 其实很简单,老样子树结构判断好null 之前就遇到别人讨论过这题,今天碰到这题也格外的亲切,一种 阅读全文
posted @ 2018-05-29 17:52 Lawliet__zmz 阅读(174) 评论(0) 推荐(0)
摘要:合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 用JavaScript非递归和递归方式都AC了。 非递归: function ListNode(x){ this.val = x; this.next = null; } fu 阅读全文
posted @ 2018-02-10 20:09 Lawliet__zmz 阅读(155) 评论(0) 推荐(0)
摘要:链表中倒数第k个结点 时间限制:1秒 空间限制:32768K 题目描述 输入一个链表,输出该链表中倒数第k个结点。 现在链表题都是要跟“倒立”联系= =,看到这个问题,自然想到以前用递归巧妙倒序打印链表。 如果是打印倒数第k个节点的val值得话: var arr = new Array(); var 阅读全文
posted @ 2018-02-02 08:04 Lawliet__zmz 阅读(261) 评论(0) 推荐(0)
摘要:1.数值的整数次方 时间限制:1秒 空间限制:32768K 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 标准的快速幂。。。注意base为0 return 0,我用JS抛出错误在oj上错了 QAQ 还有就是负数的情况,变正, 阅读全文
posted @ 2018-02-01 06:23 Lawliet__zmz 阅读(168) 评论(0) 推荐(0)
摘要:题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 剑指offer的题做起来真是可以补坑。。。 这道题一看就是要用位运算来解决了。位运算的需要点计算机组成原理的知识,不然这道题还是有小坑的。 首先正数和负数在内存中都是以补码存储的,正数的补码就是它本身,负数的补码是它的绝对值 阅读全文
posted @ 2018-01-12 00:32 Lawliet__zmz 阅读(215) 评论(0) 推荐(0)
摘要:题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 一开始的思路最暴力的就是打表,没想到直接过了。。数据弱嘛 class Solution { public: int jumpFloorII(int number) { if (n 阅读全文
posted @ 2018-01-12 00:31 Lawliet__zmz 阅读(145) 评论(0) 推荐(0)
摘要:题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 大概所有同学C语言课程都敲过吧,那么这里我就不说那两个简单的方法,递归和迭代。 但是比较大的情况呢,甚至超过int范围,这就要考虑数学问题。 用矩阵计算的,在线性代数里的计算方法就是 n的次方结合矩阵快速幂,时 阅读全文
posted @ 2018-01-06 20:29 Lawliet__zmz 阅读(202) 评论(0) 推荐(0)
摘要:题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 一个栈就是把队列反过来,那再来一个栈push进第一个栈就“正”过来了。 第一个栈就是存下反过来的序列。 每次push进一个数,要先判断stack2“正”序列是否为空,不为空要还原“反序列”,还要stack 阅读全文
posted @ 2017-12-31 01:48 Lawliet__zmz 阅读(157) 评论(0) 推荐(0)
摘要:题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 这道题就比较经典了,经典递归。 JS版:(我加了测试 阅读全文
posted @ 2017-12-25 15:34 Lawliet__zmz 阅读(133) 评论(0) 推荐(0)
摘要:题目描述 输入一个链表,从尾到头打印链表每个节点的值。 这个其实我才出题人是想考察递归的,但是做法可以直接另开个数组,遍历链表的时候push链表val值,最后reverse即可。 但是递归方法更加优美啊,通过递归进入链表底部,从下往上push,其实就是用递归模拟了栈的思想,我一直认为栈就是用迭代来模 阅读全文
posted @ 2017-12-25 15:32 Lawliet__zmz 阅读(125) 评论(0) 推荐(0)
摘要:题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 一开始想到是split("\\s"),但是发现有"hello " "hello hello "的数据啊,分割后空格是不会被分配到一个数 阅读全文
posted @ 2017-11-07 19:31 Lawliet__zmz 阅读(127) 评论(0) 推荐(0)
摘要:题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 第一种方法,在每一行进行二分查找,NlogN。 第二种方法,也可能是最好的,因为已经是有序的,我们选取左下角或者右上角,每 阅读全文
posted @ 2017-11-05 21:50 Lawliet__zmz 阅读(179) 评论(0) 推荐(0)