数据结构&算法
文章平均质量分 83
Dr_Unknown
这个作者很懒,什么都没留下…
展开
-
【数据结构】 单链表的基本操作+反转+选择/直接插入/冒泡3种排序
单链表操作转载 2016-03-02 20:00:26 · 1605 阅读 · 0 评论 -
【Leetcode 动态规划】 买卖股票 I II III IV 冷却,共5题
买卖股票问题转载 2016-07-18 09:26:38 · 15179 阅读 · 0 评论 -
【Leetcod 动态规划】 子数组最大和一类的问题
1原创 2016-07-18 09:58:15 · 610 阅读 · 0 评论 -
【树】二叉树中和为某一值的路径
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。class Solution {public: void FindPathCore(TreeNode* root, int currSum,int target, vector& tmp, vector >& result) {原创 2016-07-19 21:01:19 · 369 阅读 · 0 评论 -
排序 模板+总结 【还差计数 基数 桶】
排序总结原创 2016-05-03 17:15:55 · 422 阅读 · 0 评论 -
【树】判断树是否为BST + 求BST的第k个结点 + 判断一个数组是否为BST的后序遍历
【树】二叉搜索树的第k个结点原创 2016-07-11 16:17:06 · 1530 阅读 · 0 评论 -
【树】二叉树的深度 + 树的最小深度 + 判断是否为平衡二叉树
【树】二叉树的深度 + 树的最小深度 + 判断是否为平衡二叉树原创 2016-07-11 21:18:59 · 655 阅读 · 0 评论 -
随机数的两道题
题1:给定N张扑克牌和一个随机函数,设计一个洗牌算法(又称不重复的随机数)代码:/*rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。srand函数:srand()称为随机数生成器的初始化器。头文件:定义函数:void srand (uns原创 2016-07-12 20:21:39 · 628 阅读 · 0 评论 -
【二分查找】
正常的 找到target:迭代://二分查找:有则返回该值or序号(看具体情况),找不到则返回-1.//关键点有三:1、mid = low + (high - low) >> 1 防溢出;2、while循环是小于等于(重点是有等号);3、mid跟target的判断没等号,执行时是加/减1!int binary_search(int* nums, int numsSize, int ta原创 2016-07-12 10:21:21 · 353 阅读 · 0 评论 -
包含max/min 的 栈/队列 该作者的其他文章也很好! 要看!
转自 包含max(min)的栈及队列该作者的其他文章也很好! 如:二叉树的三种迭代遍历 非递归快排 单list的归并排序(排序 那篇)等等题目一:设计一种栈,在这个栈中实现一个能够得到栈中最小元素的min函数。在该栈中,调用push,pop及min的时间复杂度都是O(1) 可以设计一个栈作为辅助数据结构,这个栈相应位置的值就是主栈中压入相应多元素中的最大值。转载 2016-07-09 13:37:45 · 309 阅读 · 0 评论 -
背包问题【01、完全(恰好or不超过)、多重】【尚未整理完】
变形问题:2N长度数组,分成俩N长度的,使其和差值最小。【程序员面试100题之十五:数组分割】(写在前面)背包问题 总结的要点:(黄色字体标题的代码为三个问题最终用的模板)1.一维(矩阵)的01背包为啥要逆序(保证更新f[j]时,f[ j - weight[i] ]是没有放入物品i时的数据即f[ i - 1 ][ j - weight[i] ],因为01背包每个物品至...原创 2016-04-28 16:59:11 · 6535 阅读 · 1 评论 -
【Leetcode 动态规划】 不知如何分类 就都放这里了
杂原创 2016-07-18 11:31:12 · 1936 阅读 · 0 评论 -
【树】二叉树的非递归遍历(栈&Morris)
树的面试考点+leetcode原创 2016-07-10 21:25:51 · 838 阅读 · 0 评论 -
【树】二叉树转为双向链表
**********************二叉树->双向链表**********************Convert函数返回的是root节点,BinTreeToDLL函数返回的是最终答案(双向链表double-linked-list的头节点)TreeNode* Convert(TreeNode* root){ if (root == NULL) return原创 2016-07-10 21:32:04 · 746 阅读 · 0 评论 -
【树】树的广度遍历(1.打成一行 2.按层打成普通多行 3.按层打成之字形多行)
【树】树的广度遍历(1.打成一行 2.按层打成普通多行 3.按层打成之字形多行)原创 2016-07-11 11:01:52 · 483 阅读 · 0 评论 -
【树】判断二叉树是否镜像 + 将一个二叉树变成其镜像
【树】判断二叉树是否镜像 + 将一个二叉树变成其镜像原创 2016-07-11 21:17:30 · 753 阅读 · 0 评论 -
【树】B是不是A的子结构 + B和A是否相等
目录:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)bool IsSubTree(TreeNode* pRoot1, TreeNode* pRoot2) { if(pRoot2 == NULL) return true; if(pRoot1 == NULL) return false;原创 2016-07-11 21:46:16 · 424 阅读 · 0 评论 -
【提升逼格系列】 KMP算法、Manacher算法、【待添加】红黑树、线程池
提升逼格原创 2016-07-04 10:51:06 · 607 阅读 · 0 评论