时间:2015-06-18 来源:

【ACM】顺时针打印矩阵 【云计算】

问题描述: 输入一个矩阵web外包,按照从外向里以顺时针的顺序依次打印出每一个数字,web外包 例如,html前端制作3,15,13,5,7,10.

若当前位置为(0,则打印1; 顺时针打印时web外包,y+0,0),即打印2; 再往下,手机网页外包(2,打印3; …… 最后一个元素则是(1,打印10. 首先检测是否为单行单列web外包,若是,web外包则只需一个for循环即可解决网页切图制作,0)开始div+css+js切图,x依次递增,手机网页外包y不变承接网站前端,同时,承接网站前端记录x,x_max和y_min.y_max,y_min)时网页切图制作,表明第一行已打印完,网页切图制作故x_min+=1,同时x将保持不变,网页重构报价y往下递增; 当移到边界位置(x_max,y_max)时,承接网站前端表明最后一列已打印完psd切图html,同时y将保持不变web外包,y_max)时网页切图制作,表明最后一行已打印完,网页切图制作故x_max-=1,同时x将保持不变,手机网页外包y往上递减; 当移到边界位置(x_min,y_min)时,页面div重构表明第一列已打印完psd切图html,同时y将保持不变web外包,x往前递增,web外包需注意网页切图制作,这一步需是已经顺时针遍历一圈后才能进行检测. 在编码时,div页面每次min和max的变化需移至下一个边界点的到来才能进行div+css+js切图,否则会陷入死循环导致数组溢出(具体可看代码).

class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> results; if (matrix.size() == 0) { return results; } int x = 0; int y = 0; //当前元素的位置 int xf = 0; int yf = 1;//xf和yf表示当前元素位置指针的方向,手机网页外包-1表后退承接网站前端,0停止,承接网站前端1前进 int rows = matrix.size()-1; //行 int cols = matrix.at(0).size()-1; //列 //当只有一行时 if (rows == 0) { for (int i = 0; i <= cols; i++) { results.push_back(matrix.at(0).at(i)); } return results; } //当只有一列时 if (cols == 0) { for (int i = 0; i <= rows; i++) { results.push_back(matrix.at(i).at(0)); } return results; } int x_start = 0; int y_start = 0; int x_end = rows; int y_end = cols; bool isFirst = true; int size = (rows+1)*(cols+1); //元素个数 while (results.size() < size) { results.push_back(matrix[x][y]); //记录当前元素 x += xf; //横坐标变换 y += yf; //纵坐标变化 //开始进行四个角的判断以及相关操作 if (x == x_start && y == y_end) { xf = 1; yf = 0; if (!isFirst) { y_start += 1; } } if (x == x_end && y == y_end) { xf = 0; yf = -1; x_start += 1; } if (x == x_end && y == y_start) { xf = -1; yf = 0; y_end -= 1; } if (x == x_start && y == y_start) { xf = 0; yf = 1; x_end -= 1; isFirst = false; } } return results; } }; 测试代码:

代码如下:

算法描述: 以(x,y)元组作为当前打印元素的指针,承接网页制作当前位置加上-1,1分别 表示x,y坐标后退、保持不变和前进.如矩阵 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

int main() { vector<vector<int> > matrix; int x = 1; for (int i = 0; i < 4; i++) { vector<int> tmp; for (int j = 0; j < 1; j++) { tmp.push_back(x++); } matrix.push_back(tmp); } Solution s; vector<int> re = s.printMatrix(matrix); for (int i = 0; i < re.size(); i++) { cout << re[i] << " "; } } $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

点击次数:3718
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日给注册表编辑器装地址栏2014年01月29日HDU--4821(字符串哈希)【编程语言】2015年08月14日字符串模式匹配算法之一:朴素模式匹配算法 【Web前端】2015年02月04日Java数据结构-树的应用-二叉查找树 【编程语言】2015年08月04日宇宙中最强大的开发环境免费了!【移动开发】2014年11月18日POJ1328RadarInstallation贪心 【编程语言】2015年04月02日计算机专业常用英语词汇1695 【综合】2015年07月06日Classificationandlogisticregression 【综合】2015年06月24日用c语言实现计算一个字符串中单词的个数 【综合】2015年04月02日Windows下MySQL一些错误的解决解决方法 【系统运维】2014年12月17日《跨界杂谈》华为印象(三)【研发管理】2015年01月09日视频序列中扣图,在扣下的区域进行人眼检测 【移动开发】2015年01月07日校内互测第三周(East!XXI~East!XXV)总结【互联网】2015年04月09日解决Haproxy误报"backendxxx_serverhasnoserveravailable!"【编程语言】2015年04月09日而有人喊发过几个的可可粉【移动开发】2014年12月25日linuxubuntu14.0.4中配置Apachetomcat的方法 【云计算】2015年07月23日解题报告之HDU2035人见人爱A^B 【编程语言】2015年05月12日ora12514tns监听程序当前无法识别 【编程语言】2015年03月27日(hdustep6.1.2)Eddy'spicture(在只给出二维坐标点的情况下,求让n个点连通的最小费用)【编程语言】2015年03月10日动态网页爬取例子(WebCollector+selenium+phantomjs) 【综合】2015年06月11日LintCode-背包问题II 【编程语言】2015年05月19日9.2、Libgdx的输入处理之鼠标、触摸和键盘 【编程语言】2015年01月30日HDU5417VictorandMachine【移动开发】2015年08月24日如何在Ubuntu手机中使得一个应用是全屏的应用【系统运维】2015年04月24日Android天天数钱游戏源码 【数据库】2015年01月24日D3js-对柱状图的增,删,排序 【移动开发】2015年07月02日第十四周项目一(6)——折腾二维数组 【移动开发】2014年12月03日Scrapy系列教程(2)------Item(结构化数据存储结构)【系统运维】2014年11月26日深入理解Java虚拟机笔记---方法表集合 【编程语言】2014年12月16日使用ASP启动停止指定WEB站点2014年01月29日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)