Leetcode题解(22)
摘要:66. Plus One 题目 这题很简单,直接代码: 1 class Solution { 2 public: 3 vector<int> plusOne(vector<int> &digits) { 4 // IMPORTANT: Please reset any member data you
阅读全文
Leetcode题解(21)
摘要:62. Unique Paths 题目 分析: 机器人一共要走m+n-2步,现在举个例子类比,有一个m+n-2位的二进制数,现在要在其中的m位填0,其余各位填1,一共有C(m+n-2,m-1)种可能,如果0表示向下走,1表示向右走,这样就和题目意思一样了。 现在考虑最后一步的走法,要么向右走到达终点
阅读全文
Leetcode题解(20)
摘要:59. Spiral Matrix II 题目 这道题copy网上的代码 1 class Solution { 2 private: 3 int step[4][2]; 4 bool canUse[100][100]; 5 public: 6 void dfs(int dep, vector<vec
阅读全文
Leetcode题解(十九)
摘要:54、Spiral Matrix 题目: 题目意思很简单,就是螺旋式访问矩阵元素。也没有比较经典的算法可以解决此题,只需要模拟一下这个过程即可。 代码如下: 1 class Solution { 2 public: 3 vector<int> spiralOrder(vector<vector<in
阅读全文
Leetcode题解(十八)
摘要:51、N-Queens ---------------------------------------------------------------------------------分割线------------------------------------------------------
阅读全文
Leetcode题解(十七)
摘要:48、Rotate Image 题目: 分析:题目意思很简单,就是将一个n*n的矩阵顺时针旋转90度。 这道题难度不大,按照旋转的过程走一遍即可。代码如下: 1 class Solution { 2 public: 3 void rotate(vector<vector<int>>& matrix)
阅读全文
Leetcode题解(十六)
摘要:44 ----------------------------------------------------------------分割线--------------------------------------------------------------------------------
阅读全文
Leetcode题解(十五)
摘要:42、Trapping Rain Water题目这道题目参考http://www.cnblogs.com/felixfang/p/3713197.html观察下就可以发现被水填满后的形状是先升后降的塔形,因此,先遍历一遍找到塔顶,然后分别从两边开始,往塔顶所在位置遍历,水位只会增高不会减小,且一直和...
阅读全文
Leetcode题解(十四)
摘要:39、Combination Sum题目题目要求找出和为target的数字组合,并且每个整数可以多次使用。仔细思考可以发现,这道题目可以采用递归的方法来完成,比如举的例子,target=7,一开始可以选中2,并且2> combinationSum(vector& candidates, int ta...
阅读全文
Leetcode题解(十三)
摘要:36、Valid Sudoku题目代码如下: 1 class Solution { 2 public: 3 bool isValidSudoku(vector > &board) { 4 // Note: The Solution object is instantiated...
阅读全文
Leetcode题解(十二)
摘要:33、Search in Rotated Sorted Array题目这道题目如果没有其他要求,直接遍历一遍就可以知道答案,但是,题目给出了是排序了数组,但是数组有可能经过了旋转得到,其解题思路仍然是二分查找,只不过在处理的时候需要添加一下逻辑处理;在做逻辑判断的时候,主要判断的是target可能位...
阅读全文
Leetcode题解(十一)
摘要:31、Next Permutation题目这道题目的意思是给定一个序列,找出其按照字典顺序的下一个顺序,如果给定顺序是字典中的最后一个顺序,其下一个顺序则为字典中的第一个顺序。比如:1,2,3,4,5-----注,后面的顺序去掉逗号123541243512453125341254313245通过上面...
阅读全文
Leetcode题解(十)
摘要:29、Divide Two Integers题目题目要求不用乘除和取模运算,实现两个整数相除;我的第一想法就是把除法变成减法来做,这也是最初除法的定义,其实现代码如下: 1 class Solution { 2 public: 3 int divide(int dividend, int d...
阅读全文
Leetcode题解(九)
摘要:28、Implement strStr()-------KMP算法(*)题目这道题目其实就是实现KMP算法,并且该算法也是比较经典的算法,需要很好的掌握:贴上几个介绍字符串匹配的算法说明链接http://www.cnblogs.com/Su-30MKK/archive/2012/09/17/2688...
阅读全文
Leetcode题解(八)
摘要:26、Remove Duplicates from Sorted Array题目直接上代码,方法很简单:class Solution {public: int removeDuplicates(vector& nums) { const int size = nums.size(...
阅读全文
Leetcode题解(七)
摘要:24、Swap Nodes in Pairs题目看到此题,第一想法是利用两个指针,分别将其所指向的节点的value交换。然后同时向后移动2个节点,代码如下: 1 struct ListNode { 2 int val; 3 ListNode *next; 4 Li...
阅读全文
Leetcode题解(六)
摘要:21、Merge Two Sorted Lists题目直接上代码:class Solution {public: ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { ListNode *helper=new ListNode...
阅读全文
Leetcode题解(五)
摘要:17、Letter Combinations of a Phone Number题目针对输入的数字串,每一个数字都对应对个字符可以选择。因此可以直接采用递归的思想,依次遍历数字串的每一个数字,处理到当前数字时,余下的数字可以看出一个规模更小的子串来处理,这正符合递归的思想,将问题逐步化小。代码如下:...
阅读全文
Leetcode题解(四)
摘要:12/13、Integer to Roman/RomantoInteger题目罗马数字规则:符号IVXLCDM数字1510501005001000代码如下: 1 class Solution { 2 public: 3 string intToRoman(int num) { 4 ...
阅读全文
Leetcode题解(三)
摘要:8、String to Integer (atoi)题目这道题目关键是要考虑清楚各种输入用例。针对每一种情况,函数都能处理,也就是函数鲁棒性很高。代码如下: 1 class Solution { 2 public: 3 int myAtoi(string str) { 4 i...
阅读全文