
算法
文章平均质量分 58
Gl_Zhang96
Keep Coding…
展开
-
算法优化实例
算法优化实例算法时间复杂度T(N)=O(N3)T(N)=O(N^3)T(N)=O(N3)完全没有比必要每次j++,用k循环再把ThisSum重新算一遍,直接再往后加一个数就好算法时间复杂度T(N)=O(N2)T(N)=O(N^2)T(N)=O(N2),本能地希望改进为T(N)=O(NlogN)T(N)=O(NlogN)T(N)=O(NlogN)“在线”的意思是指每输入一个数据就能进...原创 2018-11-19 17:16:36 · 2767 阅读 · 1 评论 -
如何更好的理解和掌握 KMP 算法
有些算法,适合从它产生的动机,如何设计与解决问题这样正向地去介绍。但KMP算法真的不适合这样去学。最好的办法是先搞清楚它所用的数据结构是什么,再搞清楚怎么用,最后为什么的问题就会有恍然大悟的感觉。我试着从这个思路再介绍一下。大家只需要记住一点,PMT是什么东西。然后自己临时推这个算法也是能推出来的,完全不需要...转载 2018-12-22 20:06:45 · 249 阅读 · 0 评论 -
算法:子集和数问题N-Sum(N数之和)
在LeetCode上有两数之和,三数之和,四数之和的问题…干脆直接写一个N数之和问题描述已知数组A[0…N-1],给定某数值sum,找出数组中的若干个数,使得这些数的和为sum解决方法设一个bool向量x[0…N-1]x[i]=0表示不取A[i],x[i]=1表示取A[i]这是个NP问题首先采用直接递归(枚举法)代码如下:#include <iostream>...原创 2018-12-29 21:57:19 · 7400 阅读 · 2 评论 -
根据具体实例谈回溯算法
什么是回溯法回溯算法也叫试探法,它是一种系统地搜索问题的解决方法,实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标,但当探索到某一步时,发现原先选择并不优或达不到目标时,就退回一步重新选择。这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点成为“回溯...原创 2018-12-25 15:25:30 · 472 阅读 · 0 评论