剑指offer算法
费瑟
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer - 03_数组中重复的数字 - JavaScript
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。它考察的是程序员的沟通能力,先问面试官要时间/空间需求!!!只是时间优先就用字典,还有空间要求,就用指针+原地排序数组,如果面试官要求空间O(1)并且不能修改原数组,还得写成二分法!!!先排序在查找(测试结果最优)排序之后有重复的肯定是挨着的,然后前后两两比较,如果有重复的直接返回v.原创 2020-07-22 15:45:27 · 283 阅读 · 0 评论 -
剑指offer - 10_斐波那契数列 - JavaScript
题目描述:写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1注意:由于测试数据会溢出 js 中的整数范围,所以请使用大数(bigint)类型!!!解法.原创 2020-07-21 20:07:18 · 334 阅读 · 0 评论 -
剑指offer - 09_用两个栈(队列)实现队列(栈) - JavaScript
题目描述:用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。 队列中的元素为 int 类型。拓展思考:如何用两个队列实现一个栈?解法 1: 利用栈的特性栈的特性是:后入先出。根据题目提示,使用 2 个栈即可。一个栈inStack用来存储插入队列的数据,一个栈outStack用来从队列中取出数据。算法分为入队和出队过程。入队过程: 将元素放入 inStack 中。出队过程:outStack 不为空:弹出元素outStack 为空:将 inStack 元素依次弹出,放入到 o.原创 2020-07-21 20:23:26 · 238 阅读 · 0 评论
分享