
算法
qq_45162113
123456
展开
-
爬楼梯问题(一次爬1-n个楼梯,共有几种爬法)
题目:爬楼梯,每次可以爬1个或着2个台阶或者更多个台阶,共有几种爬法。分析:这种题一般有两种做法,第一种是找规律。第二种是动态规划。第一种:找规律法假如题目是每次爬1个或者爬2个。求所有的可能性首先我们先算出前十个的所有可能结果台阶个数12345678910可能情况123581321345589观察上表不难发现,从第三个台阶开始,当前的台阶数等于前两个数之和。这也就是斐波那契数列,得到这些信息后,编程就很容易了。public原创 2020-11-06 21:49:44 · 8700 阅读 · 1 评论 -
堆排序
堆排序平均时间复杂度:O(n log n)最好情况:O(n log n)最坏情况:O(n log n)空间复杂度:O(1)稳定性:不稳定排序思路1、将无序数组构建成一个堆,根据升降序需求选择大顶堆或小顶堆。2、将堆顶元素与末尾元素交换,将最大的元素放到数组末端。3、重新调整结构,然后继续交换堆顶元素与当前数组末尾元素,反复执行。import java.util.Arrays;public class 堆排序 { public static void main(String[原创 2020-11-05 17:36:23 · 83 阅读 · 0 评论 -
KMP算法图文演示+详细解读
KMP算法介绍KMP算法俗称“看毛片算法”,是一个解决模式串是否在文本中出现过,若出现则返回其最早出现位置的经典算法。简单 的说就是字符串查找算法。先看一个案例:有一个字符串str1=“ABAACABABCAC”,和一个字串str2=“ABABC”;现在需要判断str1是否包含str2,如果包含则返回第一次出现的角标,否则返回-1对于这个案例大家最容易想到的就是用暴力匹配来判断,先演...原创 2020-04-14 14:04:26 · 1173 阅读 · 2 评论