Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package prac;
- public class question02_monotonic {
- public static void main(String[] args) {
- int[] testA = { 1, 2, 4, 7, 6, 6, 6, 2, 0 };
- question02_monotonic question03 = new question02_monotonic();
- System.out.println("result: " + question03.solution(testA));
- }
- public int solution(int[] A) {
- int result = 0;
- // for testing
- int resultIncrement = 0;
- int resultDecrement = 0;
- int resultConstant = 0;
- int len = A.length;
- int incrementContinuousCount = 0;
- int decrementContinuousCount = 0;
- int constantContinuousCount = 0;
- for (int i = 0; i < len; i++){
- // get increment one
- if (i+1 < len && A[i] < A[i+1]){
- ++incrementContinuousCount;
- }else{
- System.out.println("continuousCount: " + incrementContinuousCount);
- int addResult = addResult(incrementContinuousCount);
- System.out.println("addResult: " + addResult);
- result += addResult;
- incrementContinuousCount = 0;
- resultIncrement += addResult;
- }
- // get decrement one
- if (i+1 < len && A[i] > A[i+1]){
- ++decrementContinuousCount;
- }else{
- System.out.println("decrementContinuousCount: " + decrementContinuousCount);
- int addResult = addResult(decrementContinuousCount);
- System.out.println("addResult: " + addResult);
- result += addResult;
- decrementContinuousCount = 0;
- resultDecrement += addResult;
- }
- // get constant one
- if (i+1 < len && A[i] == A[i+1]){
- ++constantContinuousCount;
- }else{
- System.out.println("constantContinuousCount: " + constantContinuousCount);
- int addResult = addResult(constantContinuousCount);
- System.out.println("addResult: " + addResult);
- result += addResult;
- constantContinuousCount = 0;
- resultConstant += addResult;
- }
- }
- System.out.println("resultIncrement: " + resultIncrement);
- System.out.println("resultDecrement: " + resultDecrement);
- System.out.println("resultConstant: " + resultConstant);
- // exception
- if (result > 1000000000) result = -1;
- return result;
- }
- private int addResult(int continuousCount){
- return ((continuousCount+1)*continuousCount)/2;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement