算法
老爸是程序员
能写出很诗一样的代码,也能细心的带好娃
展开
-
[算法]动态规范(dp)
动态规范总体思想基于 斐波那契数列fib(n)={1n=1或n=2fib(n−1)+fib(n−2)o/w fib(n)=\begin{cases}1 & n=1 或 n=2 \\fib(n-1) + fib(n-2) & o/w \\\end{cases}fib(n)={1fib(n−1)+fib(n−2)n=1或n=2o/w动态规划解决来递归的重...原创 2020-04-30 23:42:08 · 421 阅读 · 0 评论 -
[算法]二分查找
二分查找通用解题模板:区间定义:[l, r) 左闭右开f(m)函数 满足该条件,可直接返回对应位置g(m)函数 满足该条件,可移动右边界同理,在else中移动左边界如果没有这个条件的判断就是 lowwer_bound和higher_bound.def binary_search(l, r): while l < r: m = l + (r - l) ...原创 2020-04-23 18:09:22 · 174 阅读 · 0 评论 -
[算法]深度优先搜索(DFS)
深度优先搜索(DFS)解题步骤DFS 通用解题步骤截止条件遍历候选节点筛选DFS搜索执行顺序如下图力扣对应题目面试题 08.07. 无重复字符串的排列组合通用DFS解题代码public static String dfs(char[] chars,Stack stack) { // 1.截止条件 if (stack.size()==c...原创 2020-04-23 15:04:17 · 199 阅读 · 0 评论 -
图解动态规划的解题四步骤
如果你对于动态规划还不是很了解,或者没怎么做过动态规划的题目的话,那么 House Robber (小偷问题)这道题是一个非常好的入门题目。本文会以 House Robber 题目为例子,讲解动态规划题目的四个基本步骤。动态规划的的四个解题步骤是:定义子问题写出子问题的递推关系确定 DP 数组的计算顺序空间优化(可选)下面我们一步一步地进行讲解。步骤一:定义子问题稍微接触过一点...转载 2020-04-02 20:36:44 · 7627 阅读 · 0 评论 -
十二种排序算法
前言排序算法在计算机科学入门课程中很普遍,在学习排序算法的时候,涉及到大量的各种核心算法概念,例如大O表示法,分治法,堆和二叉树之类的数据结构,随机算法,最佳、最差和平均情况分析,时空权衡以及上限和下限,本文就介绍了十二种排序算法供大家学习。简介排序算法是用来根据元素对应的比较运算符重新排列给定的数组的算法,输出的数组是一个根据比较符从小到大或者从大到小依次排列的数组。比较运算符是用于确定相...转载 2020-03-31 19:48:03 · 640 阅读 · 0 评论