Help me to memorize.
\nclass Solution {\n    public int numSubseqUtil(int min, int max, int i, int[] nums, int target ){\n        if(i == nums.length) return 0;\n        int newMin 
```\nclass Solution {\n    public int numSubseqUtil(int min, int max, int i, int[] nums, int target ){\n        if(i == nums.length) return 0;\n        int newMin = Math.min(min, nums[i]);\n        int newMax = Math.max(max, nums[i]);\n\t\tint count = 0;\n        if(newMax+newMin<=target){\n            count += 1;\n        } \n        return count + numSubseqUtil(newMin, newMax, i+1, nums, target) + numSubseqUtil(min, max, i+1, nums, target);\n    }\n    \n    public int numSubseq(int[] nums, int target) {\n        int n = nums.length;\n        return numSubseqUtil(1000000, -1000000, 0, nums, target);\n    }\n}\n```
['Recursion', 'Java']