657. Judge Route Circle
来源:互联网 发布:芙莉西亚之虫惑魔淘宝 编辑:程序博客网 时间:2024/05/20 21:48
问题描述:一个机器人,上(U)下(D)左(L)右(R)移动,给定一个UDLR组成的字符串。判断机器人移动后能否回到原点。
原答案如下:
public boolean judgeCircle(String moves) { int length=moves.length(); int lr=0; int ud=0; String s=""; for(int i=0;i<length;i++){ char c=moves.charAt(i); s=String.valueOf(c); if("U".equals(s)) ud++; else if("D".equals(s)) ud--; else if("L".equals(s)) ++lr; else if("R".equals(s)) lr--; } if(lr==0) if(ud==0) return true; else return false; else return false; }
浏览了前几项后最佳答案如下(尽管最佳答案不是运行最快的答案):
public boolean judgeCircle(String moves) { int[] count = new int[256]; for(char c : moves.toCharArray()){ count[c]++; } return count['U'] == count['D'] && count['L'] == count['R']; }
修改原因:
1、数组取数会更快。
2、原答案中每次都要新生成一个String对象,耗费开销。然而char型是可以直接使用==判断的。
3、if else比较会慢些。换成switch会更快。
并不是一个很有趣的问题,难怪赞同反对的人数基本一样多。
阅读全文
0 0
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657.Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- 657. Judge Route Circle
- leetcode 657. Judge Route Circle
- ubuntu16.04+cuda8.0+cudnn6+opencv3.1 搭建caffe tensorflow
- 简单的javaScript和jQuery使用日记
- py2exe
- CSS 盒子模型
- 查看不同网络结构(22)---《深度学习》
- 657. Judge Route Circle
- Linux 内核 习题
- Eclipse自定义快捷键
- CF 447B DZY Loves Strings(水题)
- linux 配置ip地址
- 2017.10.24总结与回顾
- Android零基础入门第89节:Fragment回退栈及弹出方法
- dll、com 二进制模块封装内幕
- [leetcode]#136. Single Number