剑指offer
梨子的博客
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指offer-57 和为s的连续正数序列
题目描述: 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 输入:target = 9 输出:[[2,3,4],[4,5]] 输入:target = 15 输出:[[1,2,3,4,5],[4,5,6],[7,8]] 滑动窗口法 头尾指针,最开始头指针指向数组0下标处,尾指针比头指针多1,而后开始移动,利用等差数列的求和公式来对头尾指针的区间内的元素求和 /** *原创 2020-08-21 17:58:20 · 203 阅读 · 0 评论 -
剑指offer-39 数组中出现次数超过一半的数字
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制:1 <= 数组长度 <= 50000 1.哈希法 将数组中每个数作为对象的键存进空对象里,下一次循环判该键存在时次数+1,最后统计对象中每个键对应的值如果有大于nums长度一半的就输出 时间复杂度O(n),空间复杂度O(n) /** * @param {numb原创 2020-08-20 17:37:05 · 200 阅读 · 0 评论 -
剑指offer-09 用两个栈实现队列
题目描述: 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:...原创 2020-03-13 23:17:54 · 702 阅读 · 2 评论 -
剑指offer-25 合并两个有序链表
目录 思路1 思路2(迭代) 思路3(递归) 题目描述: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 限制:0 <= 链表长度 <= 1000 思路1 新定义一个链表,然后分别从l1...原创 2020-03-13 15:41:40 · 150 阅读 · 0 评论 -
剑指offer-65 两数之和
两数之和 描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路:不能用四则运算符,考虑使用位运算。加法需要处理的最重要的步骤就是进位。 在位运算中,异或(^)结果为1是表示两位不同,则是表示这两个数在这一位上一个是0一个是1,在进行“相加”时,不用进位。与(&)运算结果为1是表示两位都为1,则是表示这两个数在这同一位上都是1,需要进位,进位就是左...原创 2020-02-28 16:50:51 · 121 阅读 · 0 评论 -
剑指offer-18 删除链表的节点
描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 示例: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 常规思路:定义一个暂时变量用来删除节点,注意若要删除a节点,则需使用...原创 2020-02-28 16:51:01 · 270 阅读 · 0 评论
分享