Java中将数组的length计算放在循环体外面可以提升运行速度

      示例代码1:

将length计算放在循环体外面,在leetcode运行时,结果只打败了26%的人。

	public void moveZeroes(int[] nums) {
		int counter = 0;
		for (int i = 0; i < nums.length; i++) {
			if (nums[i] != 0)
				nums[counter++] = nums[i];
		}
		for (int j = counter; j < nums.length; j++) {
			nums[j] = 0;
		}
	}

  示例代码2:

将length计算放在循环体外面,用一个变量size保存数组的length,在leetcode运行时,结果打败了89%的人,可见小小的一个改变,提升很大。

	public void moveZeroes(int[] nums) {
		int size = nums.length;
		int counter = 0;
		for (int i = 0; i < size; i++) {
			System.out.println("i:" + i + ",counter:" + counter);
			if (nums[i] != 0)
				nums[counter++] = nums[i];
		}
		for (int j = counter; j < size; j++) {
			nums[j] = 0;
		}
	}

  

posted @ 2016-03-30 11:36  Wcy100  阅读(474)  评论(0编辑  收藏  举报