小象课程
forget_fish
这个作者很懒,什么都没留下…
展开
-
链表(LeetCode题目)
链表逆序(简单) LeetCode206反转一个单链表(不申请额外空间)示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2-&gt原创 2019-01-15 22:51:04 · 282 阅读 · 0 评论 -
动态规划
一、爬楼梯 LeetCode 70假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。3. 1 阶 + 1...原创 2019-03-09 17:08:38 · 104 阅读 · 0 评论 -
搜索
一、岛屿的个数 LeetCode 200题目:给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3思路:...原创 2019-03-06 21:27:15 · 227 阅读 · 0 评论 -
哈希表与字符串
预备知识:1、最简单的哈希-----字符哈希#include<stdio.h>#include<string>#include<stdlib.h>using namespace std;int main(){ int char_map[128] =原创 2019-03-01 15:36:20 · 2722 阅读 · 0 评论 -
递归、回溯、分治
1-a 求子集1 LeetCode 78题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]方法1:回溯法(O(2^n))class Solution{public: ...原创 2019-02-18 21:14:37 · 243 阅读 · 0 评论 -
二分查找和二分查找树
预备知识:二分查找算法(折半查找法)首先假设表中的元素时升序排列的,将表中间的位置和查找关键字比较:1、如果相等,则查找成功2、否则利用中间位置前后的两个子表:1)如果中间位置大于目标更好换剪子,则用同样的方式再前一子表进行查找2)否则在后一子表进行查找重复上述过程,满足条件则成功;否则没有子表则失败。一、插入位置 LeetCode35题目:给定一个排序数组和一个目标值,在数组...原创 2019-02-27 16:01:12 · 4548 阅读 · 1 评论 -
贪心算法
一、分发饼干(LeetCode 455)题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个...原创 2019-02-10 21:25:13 · 302 阅读 · 0 评论 -
二叉树与图
一、路径总和2 LeetCode113题目:给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / ...原创 2019-02-21 20:42:08 · 1429 阅读 · 0 评论 -
栈、队列、堆(LeetCode 课程)
预备知识基本操作:栈(stack):S.top():取出栈顶;S.empty()判断栈是否为空;S.push(x)将x添加至栈;S.pop():弹出栈顶;S.size()栈存储元素的个数队列(queue):Q.front():返回队列头部元素;Q.back():返回队列尾部元素;Q.empty()判断栈是否为空;Q.push(x)将x添加至栈;Q.pop():弹出栈顶;Q.size()栈存...原创 2019-02-01 16:28:17 · 192 阅读 · 0 评论 -
高级数据结构
预备知识:trie树的构造#include <stdio.h>#define TRIE_MAX_CHAR_NUM 26struct TrieNode{ TrieNode *child[TRIE_MAX_CHAR_NUM]; bool is_end; TrieNode() : is_end(false){ for (int i = 0; i < TRIE_M...原创 2019-03-12 22:32:47 · 705 阅读 · 0 评论