Compare commits

..
12 Commits
Author SHA1 Message Date
li_chx 551db6decf 72. 编辑距离 2026-08-13 11:16:29 +08:00
li_chx c1fe8fd658 215. 数组中的第K个最大元素 2026-08-13 10:29:17 +08:00
li_chx 23a4622f11 1510. 石子游戏 IV 2026-08-13 10:29:03 +08:00
li_chx ebd3f9445c 1406. 石子游戏 III 2026-08-13 10:28:46 +08:00
li_chx 50fba25511 877. 石子游戏 2026-08-13 10:28:19 +08:00
li_chx ece3af5149 2996. 大于等于顺序前缀和的最小缺失整数 2026-08-13 10:27:10 +08:00
li_chx a19c7573a7 2958. 最多 K 个重复元素的最长子数组 2026-08-13 10:27:08 +08:00
li_chx fe0577dd06 3739. 统计主要元素子数组数目 II 2026-08-12 11:08:31 +08:00
li_chx fcf3f21a52 93. 复原 IP 地址 2026-08-03 21:44:25 +08:00
li_chx cb73a780cf 3501. 操作后最大活跃区段数 II 2026-07-29 13:03:47 +08:00
li_chx 86ec2ee252 3499. 操作后最大活跃区段数 I 2026-07-28 18:35:53 +08:00
li_chx fc8857537e 3517. 最小回文排列 I 2026-07-28 17:25:58 +08:00
+18 -21
View File
@@ -1,32 +1,29 @@
use std::collections::HashMap;
mod arr;
struct Solution {}
impl Solution {
pub fn array_rank_transform(mut arr: Vec<i32>) -> Vec<i32> {
if arr.len() == 0 {
return arr;
pub fn min_distance(word1: String, word2: String) -> i32 {
let mut dp = vec![vec![0; word2.len() + 1]; word1.len() + 1];
let word1 = word1.chars().collect::<Vec<char>>();
let word2 = word2.chars().collect::<Vec<char>>();
for i in 1..=word1.len() {
dp[i][0] = dp[i - 1][0] + 1;
}
let mut sorted_arr = arr.clone();
sorted_arr.sort_unstable();
let mut mp = HashMap::with_capacity(arr.len());
let mut sub = 0;
mp.insert(sorted_arr[0], 0);
for i in 1..sorted_arr.len() {
if sorted_arr[i] == sorted_arr[i-1] {
sub+=1;
continue;
for i in 1..=word2.len() {
dp[0][i] = dp[0][i - 1] + 1;
}
mp.insert(sorted_arr[i], i as i32 - sub);
for i in 0..word1.len() {
for j in 0..word2.len() {
dp[i + 1][j + 1] = (dp[i][j] + if word1[i] != word2[j] { 1 } else { 0 })
.min(dp[i][j + 1] + 1)
.min(dp[i + 1][j] + 1);
}
println!("{:?}", mp);
for x in arr.iter_mut() {
*x = *mp.get(x).unwrap() + 1;
}
arr
dp[word1.len()][word2.len()]
}
}
fn main() {
println!("{:?}", Solution::array_rank_transform(vec![1,5,2,3,4,5]));
println!(
"{:?}",
Solution::min_distance("intention".to_string(), "execution".to_string())
);
}