摘要: 示例:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 阅读全文
posted @ 2019-07-05 02:45 COOHAHAHA 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 1.课程表 现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]] 输出: 阅读全文
posted @ 2019-07-02 09:45 COOHAHAHA 阅读(119) 评论(0) 推荐(0) 编辑
摘要: ••••••••••••••••••••••••••••••••••••二叉树的核心思想:二叉树的子树也是一颗二叉树•••••••••••••••••••••••••••••••••••• ••••••••••••••••••••••••••••••••••••二叉树的核心思想:二叉树的子树也是一颗 阅读全文
posted @ 2019-06-26 22:07 COOHAHAHA 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1.给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入: [5,2,6,1]输出: [2,1,1,0] 解释:5 的右侧有 2 个更小的元素 (2 和 1).2 阅读全文
posted @ 2019-06-23 21:18 COOHAHAHA 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1.给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]来源:力扣(LeetCode)链接:htt 阅读全文
posted @ 2019-06-23 21:16 COOHAHAHA 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 1.爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 阅读全文
posted @ 2019-05-01 08:25 COOHAHAHA 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 1.摆动序列 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 阅读全文
posted @ 2019-01-18 00:08 COOHAHAHA 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 堆的基础知识: 入堆push,复杂度O(logn) 出堆pop,复杂度O(1) 常见算法应用: 1.数组第k大元素; 2.查找中位数 1.求数组第k大元素 用快排时间复杂度O(nlogn),这里用堆。由于堆规模最大为k,故每次push复杂度O(logk),n次为O(nlogk),优于快排。 2.中位 阅读全文
posted @ 2019-01-15 22:04 COOHAHAHA 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 常见的栈与队列算法题 1.使用队列实现栈 2.使用栈实现队列 3.包含最小值函数的栈 4.合法的出栈序列 5.简单计算器 1.队列实现栈 主要是push函数的编写。x进队后,让之前的元素 一 一 出队再入队。 2.栈实现队列 3.最小值栈 设计一个支持 push,pop,top 操作,并能在常数时间 阅读全文
posted @ 2019-01-15 02:32 COOHAHAHA 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 常见算法: 1.链表逆序 2.链表求交点 3.链表求环 4.链表划分 5.复杂链表的复制 6-a.2个排序链表归并 6-b.k个排序链表归并 链表定义: 1.链表逆序 new_head是新链表的头指针,next是为了记录下一个要反转的结点指针。 2.链表求交点 用stl 的set,时间复杂度nlog 阅读全文
posted @ 2019-01-03 14:36 COOHAHAHA 阅读(500) 评论(0) 推荐(0) 编辑