zigzag数组实现】的更多相关文章

面试例题:输入n,求一个nXn矩阵,规定矩阵沿45度递增,形成一个zigzag数组(JPEG编码里取像素数据的排列顺序),请问如何用C++实现? (中国台湾著名硬件公司2007年11月面试题)(自程序员面试宝典第二版p89) 程序实现如下: 分析:例如输入为8的时候得到的zigzag数组为: 从上面的标记的方向应该可以看到,这个数组就是按照对角规律进行的,那么我在写程序的时候,会用一个两层的for来填充这个数组.为了从这个规律入手,我们在考虑这个数据的填充是要理清一个思路,不要按那两层的for循…
题目出自面试宝典8.3.2 题目描述: 输入n,求一个n*n的矩阵,规定矩阵沿45度线递增,形成一个zigzag数组(JPEG编码里去像素数据的排列顺序),请问如何用C++实现? 例如: n=2 0 1 2 3 n=3 0 1 5 2 4 6 3 7 8 n=5 0 1 5 6 14 2 4 7 13 15 3 8 12 16 21 9 11 17 20 22 10 18 19 23 24 分析每个矩阵中上三角矩阵,可以看到上三角矩阵的元素都满足: s= i+j; a[i][j] = s*(s+…
最近在看面试宝典,其中看到一个题目说:输入一个正整数n,输出它的zigzag数组. 分析:书上给出了数学方面的思考然后给了代码.但是我感觉如果真是面试或者考试遇到的话,我这种笨脑袋肯定是想不出来的,因此最好的方式是观察数组,然后找到规律.观察可知,数字递增的方向只有4个:right, left-down, down, right-up.因此我们可以设置一个switch语句,然后每走一步,判断下步要走的方向.因为输出的是n*n的数组,因此矩阵的右下角的数字肯定不会超过n*n,用它作为结束条件即可.…
1.为什么printf之后数组的值会改变? #include<stdio.h> ; int * Zigzag() { ,j=,limit=; ; ; int a[N][N]; int (*p)[N]=a; ;cross<N;cross++) { ==cross%) { ;i--) { p[i][cross-i]=count; count++; } } ==cross%) { ;i<=cross;i++) { p[i][cross-i]=count; count++; } } } ]…
前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html   1.题目描述 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for b…
参考<程序员面试宝典> 1. 基本概念 1.1 赋值语句 例1. 按位与操作,例如:a=3,b=3,a&b值等于 0011 & 0011 结果还是0011,那么值还是3: a=4,b=3,a|b:按位或操作, 0100 | 0011 结果是0111,输出的值为7:a||b, a和b进行或运算,只要两者有一个为真则结果即为1. 例2. while(x) { count++; x=x&(x-1);} 此循环用来求输入值x转化为二进制后1的个数.eg:9(1001)&…
摘要 本文主要讲解三种螺旋队列的实现方式和打印输出: 从中心往外端顺时针旋转,记为『外螺旋队列』 从左顶点开始,绕剩下的最大圈顺时针往内旋转,记为『内螺旋队列』 从左顶点开始,之字形旋转(只能同行同列地移动),记为『 』螺旋队列』 从左顶点开始,之字形旋转(只能沿-45°斜线移动),记为 『/ 螺旋队列 』 前三个螺旋队列图示如下: 1. 外螺旋队列 通过几个标记位,来确定其他值的大小, 由这两个值再来确定其他值,首先,我们可以确定这个值的大致范围: maxAbs=max{ fabs(r),fa…
Given two 1d vectors, implement an iterator to return their elements alternately. For example, given two 1d vectors: v1 = [1, 2] v2 = [3, 4, 5, 6] By calling next repeatedly until hasNext returns false, the order of elements returned by next should b…
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between). For example:Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7 return its…
The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) P A H N A P L S I I G Y I R And then read line by line: "PAHNAPLSII…