博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深度优先搜索之偏爱时间复杂度
阅读量:6498 次
发布时间:2019-06-24

本文共 720 字,大约阅读时间需要 2 分钟。

题目要求给你一些数字 , 其中的一些数字相加能不能等于已经给定的数字 sum ? 对这个问题我写了一个程序 , 然而总是超时 , 无药可救但是 看了别人的 程序 , 人家的程序运行得效率特别高 , 然后分析了一下 , 颇有感想决定记录下来        给出一组数据 例如  1  2  4  7    给定总和为 13   问在这几个数字中有没有几个数字的和 等于 所给数字 13的  然后我就没耽误事 开始暴力搜索了 ...    下面附上代码和分析

1 void DFS(int n,int sum) 2 { 3     for(int i=0;i

 

 

 

 

 

 

我的代码 时间复杂度极高  将所有的可能性都列出来 并且还是 , 当顺序不一样其中元素一样的时候 我也列了出来  . . . . . . 我知道你和我同样的无语 , 这样的时间复杂度真是高的可怕 .  以前的时候 自己太懒   学了 对于图的搜索之后 就开始按照同样的套路开始对  数列进行 搜索 , 一直都会有超时情况的出现  ,  但是一直都是  新三年旧三年缝缝补补又三年 .....   今天就好好的总结一下经验教训  解决了这个问题   . . .      

 下面附上 , 一个学姐写的代码 

1 bool DFS(int i,int m) 2 { 3     if(i==n) 4         return sum==m; 5     else 6         if(sum

 

 

 

学姐的代码 , 虽然也是将所有的情况都列出来 ( 不可能的时候有剪枝 ) , 但是学姐的代码 顺序不一样但是元素一样 的情况是没有出现的 .    这样就高效的很       

 

转载于:https://www.cnblogs.com/A-FM/p/5355131.html

你可能感兴趣的文章
LeetCode:4_Median of Two Sorted Arrays | 求两个排序数组的中位数 | Hard
查看>>
python之commands模块
查看>>
android应用开发--------------看RadioGroup源代码,写相似单选选项卡的集成控件(如底部导航,tab等等)...
查看>>
LeetCode - Binary Tree Level Order Traversal
查看>>
FTP协议完全详解
查看>>
【C语言天天练(十五)】字符串输入函数fgets、gets和scanf
查看>>
【环境配置】配置sdk
查看>>
accept()
查看>>
USB 2.0 Hub IP Core
查看>>
USB 2.0 OTG IP Core
查看>>
解读浮动闭合最佳方案:clearfix
查看>>
Charles使用
查看>>
Python GUI编程(Tkinter) windows界面开发
查看>>
dynamic关键字的使用
查看>>
iOS 音乐播放器之锁屏效果+歌词解析
查看>>
android O 蓝牙设备默认名称更改
查看>>
阳台的青椒苗
查看>>
swapper进程【转】
查看>>
跨链技术与通证经济
查看>>
爬虫学习之-xpath
查看>>