O(1) Space Java solution


#1

public class Solution {
public int maxProfit(final int[] arr) {
if(arr.length==0) return 0;
int prev10=0;int prev11=-arr[0];
int prev20=0;int prev21=-arr[0];
for(int i=1;i<arr.length;i++){
int temp=prev10;
prev10=Math.max(prev10,prev11+arr[i]);
prev20=Math.max(prev20,prev21+arr[i]);
prev11=Math.max(prev11,-arr[i]);
prev21=Math.max(prev21,temp-arr[i]);
}
return prev20;
}
}