public int jump(int[] nums) {
		if (nums == null || nums.length == 0) {
			return 0;
		}

		int[] step = new int[nums.length];
		step[nums.length - 1] = 0;
		for (int i = nums.length - 2; i >= 0; i--) {
			int min = step[i + 1];
			for (int j = 2; j <= nums[i]; j++) {
				if (i + j < nums.length && step[i + j] < min) {
					min = step[i + j];
				}
			}

			step[i] = min + 1;
		}
		return step[0];
	}