Leetcode题解(十九)
2016-01-30 15:13
501 查看
54、Spiral Matrix
题目:
题目意思很简单,就是螺旋式访问矩阵元素。也没有比较经典的算法可以解决此题,只需要模拟一下这个过程即可。
代码如下:
class Solution { public: vector<int> spiralOrder(vector<vector<int>>& matrix) { vector<int> res; if(matrix.empty()) return res; int m = matrix.size(); int n = matrix[0].size(); int i,j; bool **arr = new bool*[m]; for(i=0;i<m;i++) { arr[i] = new bool ; memset(arr[i],0,sizeof(bool)); } int flag=0;//0表示向右,1表示向下,2表示向左,3表示向上 int count = 0; i=0; j=0; while(true) { res.push_back(matrix[i][j]); arr[i][j] = true; count++; if(count == m*n) break; if(0 == flag) { j++; } else if(1 == flag) i++; else if(2 == flag) j--; else i--; if(i<0 || i>=m || j<0 || j>=n || arr[i][j])//越界了或者访问到已经被访问过的元素 { if(i<0) i=0; if(j<0) j=0; if(i>=m) i=m-1; if(j>=n) j=n-1; if(arr[i][j]) { if(0 == flag) j--; else if(1 == flag) i--; else if(2 == flag) j++; else i++; } flag = (flag + 1)%4; res.pop_back(); count--; } } return res; } };
-----------------------------------------------------------------------分割线-----------------------------------------------------------------------
55、Jump Game
题目:
分析:针对数组中每一个元素,计算其最大能跳多远,并将这个最远值记录好。
代码如下:
class Solution { public: bool canJump(vector<int>& nums) { const int size = nums.size(); int index = 0; int max = 0; for(;index<=size-1-1;index++)//注意等号, { if(index + nums[index] > max) max = index + nums[index]; if(index >= max)//针对用例[0,1,2] return false; } if(max >= size-1) return true; else return false; } };
-------------------------------------------------------------------------------分割线-------------------------------------------------------------------
58、Length of Last Word
题目
题目很简单,直接贴代码
class Solution { public: int lengthOfLastWord(const char *s) { int len=strlen(s); int sum=0; while(s[len-1]==' ') len--; for(int i=len-1;i>=0;i--) { if(s[i]!=' ') sum++; else break; } return sum; } };
相关文章推荐
- 车道检测问题探究(二)几何模型拟合
- JPQL查询
- UIGestureRecognizer手势
- 【第一行代码】Android 活动(activity)总结
- 定义一个大整数类,并重载乘法*运算符
- iOS 取消第一响应者
- 无聊的军官
- 如何使用angularjs实现按钮事件
- N皇后问题
- 内核态文件操作
- centos 7 安装sublime text
- python 文件读写
- CSS子元素margin-top对于父元素的影响
- JPA EntityManager详解
- MongoDB 操作手冊CRUD查询指针
- SQl 学习阶段的总结
- 基本概念
- 【Linux】教你一步一步在CentOS Linux release 7.1上安装配置vncserver
- 八皇后问题
- PHP爬虫:百万级别知乎用户数据爬取与分析