54. Spiral Matrix
2016-03-21 20:52
197 查看
class Solution { public: void Spiral_Matrix(vector<vector<int>>& matrix,vector<int>& result, bool *visited,int dir_index,int x,int y,int x_len,int y_len) { if(result.size()==x_len*y_len) return; int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}}; int x0=x+dir[dir_index][0]; int y0=y+dir[dir_index][1]; if(x0<x_len&&y0<y_len&&x0>=0&&y0>=0&&!visited[x0*y_len+y0]) { visited[x0*y_len+y0]=true; result.push_back(matrix[x0][y0]); Spiral_Matrix(matrix,result,visited,dir_index,x0,y0,x_len,y_len); } else { if(dir_index>=3) dir_index=0; else dir_index++; Spiral_Matrix(matrix,result,visited,dir_index,x,y,x_len,y_len); } } vector<int> spiralOrder(vector<vector<int>>& matrix) { if(matrix.size()==0) return {}; if(matrix.size()==1) return matrix[0]; vector<int> result; int x_len=matrix.size(),y_len=matrix[0].size(); bool * visited=new bool[x_len*y_len]; memset(visited,0,x_len*y_len*sizeof(bool)); result.push_back(matrix[0][0]); visited[0]=true; Spiral_Matrix(matrix,result,visited,0,0,0,x_len,y_len); return result; } };
这句出现错误
memset(visited,x_len*y_len*sizeof(bool),0);
改成
memset(visited,0,x_len*y_len*sizeof(bool));
就ac了,
然而
memset(visited,x_len*y_len*sizeof(bool),false);
也能ac
好奇怪
相关文章推荐
- [Poj 3278] Catch That Cow BFS
- PopupWindow和AlertDialog区别
- Android下pm 命令详解
- 第三周对构建之法的理解
- 【分享】图解Windows Server 2012 R2 配置IIS 8全过程
- Struts2工作原理
- 蓝牙、红外线与wifi 区别以及不同频段无线电磁波的穿墙和绕过障碍物能力(转)
- 【一张大大的图片】类和对象知识点总结
- /sys/power创建
- Android launcher3 开发初始篇
- 单元测试
- 基于8051内核的实验—流水灯
- iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式
- ZOJ 1100 Mondriaan's Dream【状态压缩】【DP】【DFS】
- Windows系统下将MAC系统的可执行dmg文件转换为ISO文件 & 安装到虚拟机的MAC系统上
- iOS进程间通信之CFMessagePort/还有 url schema
- 1006 Problem F
- 深度学习资源汇总
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATI
- 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳