赞
踩

class Solution { private int [] forSolution(int[] nums){ int[] result = new int[nums.length]; result[0] = nums[0]; for (int i = 1; i < nums.length; i++) { result[i] = result[i - 1] + nums[i]; } return result; } private int [] queueSolution(int[] nums){ int[] result = new int[nums.length]; ArrayQueue queue = ArrayQueue.createQueue(nums.length); try { queue.enQueue(nums[0]); for(int i=1; i < nums.length; i++) { int enQueueNum = queue.peek()+ nums[i]; queue.enQueue(enQueueNum); } int index = 0; while(!queue.isEmpty()){ result[index] = queue.deQueue(); index++; } } catch(Exception e) { // do nothing } return result; } public int[] runningSum(int[] nums){ // return forSolution(nums); return queueSolution(nums); } } class ArrayQueue { private int front; private int rear; private int capacity; private int [] array; private ArrayQueue(int size){ capacity = size; front = -1; rear = -1; array = new int [size]; } public static ArrayQueue createQueue(int size) { return new ArrayQueue(size); } public boolean isEmpty(){ return (front == -1); } public boolean isFull() { return ((rear + 1) % capacity == front); } public int getQueueSize(){ return ((capacity - front + rear + 1) % capacity); } public void enQueue(int data) throws Exception { if(isFull()) throw new Exception("Queue overflow"); rear = (rear + 1) % capacity; array[rear] = data; if(front == -1) front = rear; } public int deQueue() throws Exception { int data; if(isEmpty()) throw new Exception("Queue Empty"); data = array[front]; if(front == rear){ front = rear - 1; }else { front = (front + 1) % capacity; } return data; } public int peek() throws Exception { int data; if(isEmpty()) throw new Exception("Queue Empty"); data = array[rear]; return data; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。