摘要: 程序出现错误很正常,一个优秀的程序员必须学会调试,发现错误并改正。减少程序错误最有效的方法是:在敲代码之前,多花点时间思考,如何构造程序,数据结构和算法,尽量把细节提前写下来,可以尝试着在纸上写出核心代码,这样可以减少今后修改代码的时间。 1.常用的调试技巧 (1)代码检查,重新阅读程序,排除比较明 阅读全文
posted @ 2017-06-06 15:49 wxquare 阅读(991) 评论(0) 推荐(0) 编辑
摘要: 这是一个比较简单的题目,借助栈可以轻松实现逆波兰表达式。 题目描述: Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are+,-,*,/. Each operand 阅读全文
posted @ 2017-06-06 10:12 wxquare 阅读(743) 评论(0) 推荐(0) 编辑
摘要: 包围区域是一个典型的DFS的题目。大意是一个二维数组中存在字符'X'和'O',将被'X'包围的'O'全部变为'X'。具体做法是从数组的边界上为'O'的起点开始DFS,将DFS过程中遇到的字符标记为'Y'。然后遍历二维数组,将'Y'的变为'O',其余为'X'即可。 题目描述: Given a 2D b 阅读全文
posted @ 2017-06-06 09:56 wxquare 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 这道题是一个比较简单的题目,由于题目中要求O(n),限制使用排序,所有借用hash表unordered_set<int> s来存储数组中元素,保证O(n)的时间复杂度。 题目: Given an unsorted array of integers, find the length of the l 阅读全文
posted @ 2017-06-06 09:38 wxquare 阅读(464) 评论(0) 推荐(0) 编辑
摘要: Leetcode中出现了两道词语阶梯的题目,大意是将一个词语将通过字典里面的词语,最终转换到目标词语,每次只能更改一个字符。两道题分别是求最少的转换次数和寻找最短的转换路径。词语阶梯是典型的BFS的题目,但是寻找转换路径的时候单纯的BFS会出现超时的问题,需要增加优化策略。优化策略是删除字典中BFS 阅读全文
posted @ 2017-06-06 09:22 wxquare 阅读(511) 评论(0) 推荐(0) 编辑