阅读 23536 次
发表时间:2014-05-19
美团,去哪儿 待遇已经超过BAT了
发表时间:2014-05-19
2350054 写道
美团,去哪儿 待遇已经超过BAT了

有这么猛吗
发表时间:2014-05-19
lvwenwen 写道
2350054 写道
美团,去哪儿 待遇已经超过BAT了

有这么猛吗

美团和去哪确实不比BAT差
发表时间:2014-05-20
到底多少米啊,争论了那么半天
发表时间:2014-05-21
whereqinghuang 写道
到底多少米啊,争论了那么半天


工程师要有基本的逻辑性。 你问的这个问题,期望得到一个什么样的答案,你认为答案会是一个确切的数字吗? 比如说25k。 谁去都是25k?

或者客观一点回答你, 到底多少米?  5k-50k根据能力。 
发表时间:2014-06-06
1.两层循环

--------------------------------
一层循环就可以吧,毕竟是n*n矩阵,横纵坐标有规律的,直接循环n*n次就可以了
	public void printArray(int[][] array){
		int n=array[0].length;
		if(n==0)
			return;
		if(n==1){
			System.out.println(array[0][0]);
			return;
		}
		
		int i=0,j=n-1;
		
		for(int k=0;k<n*n;k++){
			System.out.print(array[i++][j++]+" ");
			
			 //对角线上部,起始横坐标j与终止纵坐标i相加为n,横坐标要累减,因此下一个起始横坐标j为n-i-1
			if(j>n-1&&i<n) {//
				System.out.println();
				j=n-i-1;
				i=0;
			}	
			//对角线下部,起始纵坐标i与终止横坐标j相加为n,纵坐标要累加,因此下一个起始纵坐标i为n-j+1
			else if(i>n-1&&j<n){
				System.out.println();
				i=n-j+1;
				j=0;
			}
			//对角线,要由对角线上部转到对角线下部
			else if(i==n&&j==n){
				System.out.println();
				i=1;
				j=0;
			}
			
		}
	}
发表时间:2014-06-06

 

private static final int[][] DATA = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};

    public static void main(String[] args) {
        int n = 4;
        int iStart = 0;
        int jStart = n - 1;

        while (iStart != n) {
            for (int i = iStart, j = jStart; i <= n - 1 && j <= n - 1; i++, j++) {
                System.out.print(DATA[i][j]);
                System.out.print(" ");
            }
            if (jStart > 0) {
                jStart--;
            } else {
                iStart++;
            }
            System.out.println();
        }

    }

 

发表时间:2014-06-09
public class PrintUtil {
	
	public static void print(int[][] iArr, int N) {
		int s = 0;
		for(int t=0; t<N+(N-1); t++) {
			s = N-1-t;
			for(int i=0; i<iArr.length; i++) {
				if(s>=0&&s<N) {
					System.out.print(iArr[i][s]+" ");
				}
				s+=1;
			}
			System.out.println();
		}
	}

	public static void main(String[] args) {
		int N = 4;
		int[][] iArr = new int[][] {{ 1,2,3,4 },{ 5,6,7,8 },{ 9,10,11,12 },{13,14,15,16 }};
		PrintUtil.print(iArr, N);
	}

}
发表时间:2014-06-12
while (capacity < initialCapacity) 
            capacity <<= 1;

256
发表时间:2014-06-13
奇怪,我反而觉得我的这个3层循环比较容易理解


package common;

import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 
 * @author <a href="mailto:venusdrogon@163.com">feilong</a>
 * @version 1.0.7 2014年6月13日 下午8:41:24
 * @since 1.0.7
 */
public class TwoDimensionalArrayTest{

	private static final Logger	log	= LoggerFactory.getLogger(TwoDimensionalArrayTest.class);

	private Integer[][]			array;

	@Before
	public void init(){
		int i = 9;

		//**************构造二维数组************************************
		array = new Integer[i][i];

		for (int j = 0; j < i; ++j){
			array[j] = new Integer[i];

			for (int k = 0; k < i; ++k){
				array[j][k] = i * j + 1 + k;//由于值是从1 开始的,而循环的索引是从0开始的,固需要+1, 处理
			}
		}
	}

	@Test
	public final void test(){
		//总行数
		int rows = array.length;
		//第几行
		for (int row = 0; row < rows; ++row){
			//每一行循环 开始数字 索引列
			int columns = beginColumns(rows, row);

			//columns 列数
			for (int column = columns; column >= 0; --column){
				//以输出整行为出发点
				//row&column 定位 这行输出起始坐标点
				System.out.println(getCurrentLineString(rows, row, column));
			}
		}
	}

	/**
	 * 获得这行输出的结果
	 * 
	 * @param rows
	 *            总行数
	 * @param row
	 *            输出起始行
	 * @param column
	 *            输出起始列
	 * @return
	 */
	private StringBuilder getCurrentLineString(int rows,int row,int column){
		//-------------------------------------------------------------------
		//concatCount表示 当前这个数字 最大链接数字 个数
		int concatCount = (rows - row) - column;

		StringBuilder sb = new StringBuilder();
		//line控制当前行 输出数字的数量
		for (int line = 0; line < concatCount; ++line){
			sb.append(array[row + line][column + line]);
			if (line != concatCount - 1){//不是最后一行 添加个 ""
				sb.append(" ");
			}
		}
		//-------------------------------------------------------------------
		return sb;
	}

	/**
	 * 倒序开始迭代索引,第一行会从 i-1开始,其余行都会从0开始
	 * 
	 * @param i
	 * @param totalLine
	 * @return
	 */
	private int beginColumns(int i,int totalLine){
		//这一行可用循环倒序 索引
		//比如第一行是 i个
		//第二行到第i行都是0
		if (totalLine == 0){
			return i - 1;
		}
		return 0;
	}
}

Global site tag (gtag.js) - Google Analytics