# 2389. Longest Subsequence With Limited Sum ###### tags: `Leetcode` `Easy` `Binary Search` Link: https://leetcode.com/problems/longest-subsequence-with-limited-sum/ ## 思路 $O(mlogn+nlogn)$ $O(n)$ n = nums.size(), m = queries.size() 1. sort nums array 2. compute the prefix sum of nums array 3. binary search to find the first element larger than query, that is the answer ## Code ```java= class Solution { public int[] answerQueries(int[] nums, int[] queries) { Arrays.sort(nums); int n = nums.length; for(int i=1; i<n; i++) nums[i] += nums[i-1]; int[] ans = new int[queries.length]; for(int i=0; i<queries.length; i++){ ans[i] = binarySearch(nums, queries[i]); } return ans; } private int binarySearch(int[] nums, int q){ int l = 0; int r = nums.length; while(l<r){ int mid = l+(r-l)/2; if(nums[mid]<=q) l = mid+1; else r = mid; } return l; } } ```