class Solution {
public List<List<Integer>> threeSum(int[] nums){
List<List<Integer>> ans = new ArrayList<>();
Arrays.sort(nums);
for(int i =0; i < nums.length - 2; i++){
if(nums[i]>0){break;}if(i >0&& nums[i]== nums[i - 1])continue;
int left = i + 1;
int right = nums.length - 1;
while(left < right){
if(nums[i] + nums[left] + nums[right]==0){
List<Integer> list = new ArrayList<>();
list.add(nums[i]);
list.add(nums[left]);
list.add(nums[right]);
ans.add(list);while(left < right && nums[left]== nums[left +1]){
left++;}
left++;while(left < right && nums[right]== nums[right -1]){
right--;}
right--;}else if(nums[i] + nums[left] + nums[right]>0){
right--;}else{
left++;}}}return ans;}}
class Solution {
public int minSubArrayLen(int target, int[] nums){
int n = nums.length;
if(n <=0){return0;}
int ans = Integer.MAX_VALUE;
int end =0;
int start =0;
int sum=0;
while(end < n){sum+= nums[end];
while(sum >= target){
ans = Math.min(ans, end - start + 1);sum -= nums[start];
start++;}
end++;}return ans == Integer.MAX_VALUE ? 0: ans;}}
class Solution {
public int numSubarrayProductLessThanK(int[] nums, int k){
int left =0;
int ret =0;
int total =1;for(int right =0; right < nums.length; right++){
total *= nums[right];while(left <= right && total >= k){
total /= nums[left];
left++;}if(left <= right){
ret += right - left + 1;}}return ret;}}
class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> ans = new ArrayList<>(); Arrays.sort(nums); for(int i = 0; i < nums.length - 2; i++){ if(nums[i.