Untitled

 avatar
unknown
plain_text
5 months ago
824 B
3
Indexable
class Solution {
public:
    bool presentOrNot(vector<int>& banned, int num) {
        int b = 0, e = banned.size() - 1;
        
        while(b<=e) {
            int mid = (b+e)/2;
            
            if(banned[mid] > num) {
                e = mid - 1;
            } else if(banned[mid] < num) {
                b = mid + 1;
            } else {
                return true;
            }
        }
        
        return false;
    }
    int maxCount(vector<int>& banned, int n, int maxSum) {
        sort(banned.begin(),banned.end());
        
        int cnt = 0;
        
        for(int i=1;i<=n;i++) {
            if(presentOrNot(banned, i))continue;
            
            if(maxSum - i >= 0) {
                maxSum-=i;
                cnt++;
            }
        }
        
        return cnt;
    }
};
Editor is loading...
Leave a Comment