算法思想 | 辗转法 之 最大公约数 背景辗转法又名迭代法,是不断用旧的数计算出需要的结果问题计算两个数的最大公约数代码使用辗转相除法(欧几里德算法),不断相除取余即可计算出结果。//计算两个数的最大公约数funcgcd(x,yint)i··· 算法 522 2021-09-27
算法思想 | 回溯法 之 全排列 背景回溯法是不断地寻找往下一步寻找结果,当遇到不符合条件时会返回上一步,并重新选择,不断试探不同的方向,所以又称为试探法。问题给出一个数组,找出这个数组的所有排列方式代码从代码中可··· 算法 564 2021-09-27
算法思想 | 分治法 之 二分查找 背景分治算法是一种比较常用的算法思想,通过“分而治之”的思想将大问题化解为小问题并逐个击破,最后将结果合并返回即可。问题通过二分查找的方式快速找到数组中的一个值代码二分查找算是一个··· 算法 993 2021-09-27
算法思想 | 贪心算法 之 取钱问题 背景贪心算法用于获取局部最优解,在满足特定条件下的最优解,不能保证是整体上的最优解。贪心算法的最大优势就是放弃对整体最优解的把控,以最快的速度接近最优解。问题手上有多张1元、2元、5元··· 算法 459 2021-09-25
算法思想 | 递归 之 阶乘 背景递归是编程中经常用到的一种思想,能大大地简化代码,而且也更接近于人的思考方式问题给出一个数n,算出这个数的阶乘结果代码不断地与n-1的数相乘即可,注意要有一个边界条件来结束递归。fu··· 算法 293 2021-09-25