Compare commits
2 Commits
6d6b8f6f3d
...
b8cc12db71
| Author | SHA1 | Date |
|---|---|---|
|
|
b8cc12db71 | |
|
|
f0bfce2ee6 |
26
src/main.rs
26
src/main.rs
|
|
@ -1,29 +1,15 @@
|
|||
use std::cmp::{max, min};
|
||||
mod arr;
|
||||
struct Solution {}
|
||||
|
||||
impl Solution {
|
||||
pub fn max_frequency(nums: Vec<i32>, k: i32, num_operations: i32) -> i32 {
|
||||
let mut ans = 0;
|
||||
let mut arr = vec![0; 1_000_00 + 10];
|
||||
let mut arr2 = vec![0; 1_000_00 + 10];
|
||||
for &num in nums.iter() {
|
||||
let l = max(num - k, 0);
|
||||
let r = min(1_000_00 + 1, num + k);
|
||||
arr[l as usize] += 1;
|
||||
arr[r as usize + 1] -= 1;
|
||||
arr2[num as usize] += 1;
|
||||
}
|
||||
let mut base = 0;
|
||||
for i in 0..arr.len() {
|
||||
base += arr[i];
|
||||
let local_ans = min(arr2[i] + num_operations, base);
|
||||
ans = max(ans, local_ans);
|
||||
}
|
||||
ans
|
||||
pub fn next_beautiful_number(n: i32) -> i32 {
|
||||
let arr = vec![ 0,1,22,122,212,221,333,1333,3133,3313,3331,4444,14444,22333,23233,23323,23332,32233,32323,32332,33223,33232,33322,41444,44144,44414,44441,55555,122333,123233,123323,123332,132233,132323,132332,133223,133232,133322,155555,212333,213233,213323,213332,221333,223133,223313,223331,224444,231233,231323,231332,232133,232313,232331,233123,233132,233213,233231,233312,233321,242444,244244,244424,244442,312233,312323,312332,313223,313232,313322,321233,321323,321332,322133,322313,322331,323123,323132,323213,323231,323312,323321,331223,331232,331322,332123,332132,332213,332231,332312,332321,333122,333212,333221,422444,424244,424424,424442,442244,442424,442442,444224,444242,444422,515555,551555,555155,555515,555551,666666,1224444 ];
|
||||
let point = arr.partition_point(|v| v <= &n);
|
||||
arr[point]
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
println!("{:?}", Solution::max_frequency(vec![1, 1, 1, 4, 5], 1, 2));
|
||||
println!("{:?}", Solution::next_beautiful_number(1333));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue