aboutsummaryrefslogtreecommitdiff
path: root/other/longest_subseq_lim_sum.rs
diff options
context:
space:
mode:
Diffstat (limited to 'other/longest_subseq_lim_sum.rs')
-rw-r--r--other/longest_subseq_lim_sum.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/other/longest_subseq_lim_sum.rs b/other/longest_subseq_lim_sum.rs
new file mode 100644
index 0000000..037b606
--- /dev/null
+++ b/other/longest_subseq_lim_sum.rs
@@ -0,0 +1,17 @@
+struct Solution;
+
+impl Solution {
+ pub fn answer_queries(mut nums: Vec<i32>, queries: Vec<i32>) -> Vec<i32> {
+ nums.sort_unstable();
+ nums.iter_mut().fold(0, |acc, x| { *x += acc; *x});
+ queries.iter().map(|x|
+ nums.binary_search(x).unwrap_or_else(|i| i - 1) as i32 + 1
+ ).collect()
+ }
+}
+
+fn main() {
+ let nums = vec![4,5,2,1];
+ let queries = vec![3,10,21];
+ print!("{:?}", Solution::answer_queries(nums, queries));
+}