Advertisement
nikunjsoni

1498

Apr 18th, 2021
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.55 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int numSubseq(vector<int>& nums, int target) {
  4.         sort(nums.begin(), nums.end());
  5.         int ans=0;
  6.         int pow[nums.size()], mod=int(1e9)+7;
  7.         pow[0] = 1;
  8.         for(int i=1; i<nums.size(); i++)
  9.             pow[i] = (pow[i-1]*2LL)%mod;
  10.        
  11.         int left=0, right=nums.size()-1;
  12.         while(left <= right){
  13.             if(nums[left] + nums[right] > target)
  14.                 right--;
  15.             else
  16.                 ans = (ans+pow[right-left++])%mod;
  17.         }
  18.         return ans;
  19.     }
  20. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement