博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Algorithms—62.Unique Paths
阅读量:2456 次
发布时间:2019-05-11

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

思路:m*n个方块,只能向右或者下,可以理解成有(m-1)个向右的动作和(n-1)个向下的动作,找到所有的可能性,这个问题又等价于依次排列的m(确定是m没有打错)个箱子,有(n-1)个小球随意的放置,求可能性。本来使用的是List<List<Integer>>数组求最后的size,这个list中的每个list即是一种可能性,产生的方式为,每个表示可能性的list中查看其最后一个值,然后添加从其最后一个值到m个 新list进总list中,删除原来的list,直到每个list的长度都为n-1,即小球被分发完毕,但是后来发现该方法超时,于是更换成map

public class Solution {    public int uniquePaths(int m, int n) {    	if (m==1||n==1) {			return 1;		}    	Map
map=new HashMap
(); for (int i = 0; i < m; i++) { map.put(i, 1); } for (int i = 1; i < n-1; i++) { int sum=0; for (int j = m-1; j >=0; j--) { sum+=map.get(j); } int k=map.get(m-1); for (int j = m-1; j >=0; j--) { map.put(j, sum); sum-=k; if (j>1) { k=map.get(j-1); } } } int sum=0; for (int i = 0; i < m; i++) { sum+=map.get(i); } return sum; }}

 

耗时:240ms,下游水准。悲剧的是看了一下63题,感觉我这个思路完全用不上。

 

你可能感兴趣的文章
sh脚本和bash脚本_使用此简单的Bash脚本在家打印双面文档
查看>>
raspberry pi_使用Raspberry Pi构建感知假肢
查看>>
raspberry pi_一个方便的实用程序,用于创建Raspberry Pi SD卡图像
查看>>
盲打每分钟资源10几个字_每个系统管理员应了解的10个资源
查看>>
横向扩展基础架构_您应该使用的7种基础架构性能和扩展工具
查看>>
如何在Kubernetes上找到您的Jenkins管理员密码
查看>>
c++编写音乐播放器_为什么此开发人员编写了快速响应的音乐播放器
查看>>
github pages_使用此HTTP hack重定向GitHub Pages网站
查看>>
python tox_使用tox自动化Python代码测试
查看>>
python cython_使用Cython为Python编写更快的C扩展
查看>>
flake8变量未使用_使用flake8确保Python代码的一致性
查看>>
ssh与gpg区别_如何使用GPG密钥启用SSH访问进行身份验证
查看>>
apm 韩国开源项目_韩国的开源状态
查看>>
总论点和分论点_将破坏性的论点变成富有成效的对话
查看>>
pythonic_使用Pythonic在Python中以图形方式编程
查看>>
python black_格式化Python,但您喜欢使用Black
查看>>
使用Python在GitHub Pages上运行博客
查看>>
如何使用Python和Apache Spark分析日志数据
查看>>
raspberry pi_PiFlash入门:在Linux上启动Raspberry Pi
查看>>
使用Pygame模块使用Python构建游戏框架
查看>>