用Rust刷LeetCode之26 删除有序数组中的重复项

这篇具有很好参考价值的文章主要介绍了用Rust刷LeetCode之26 删除有序数组中的重复项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

26. 删除排序数组中的重复项[1]

难度: 简单

老的描述:

用Rust刷LeetCode之26 删除有序数组中的重复项,后端

新的描述:

用Rust刷LeetCode之26 删除有序数组中的重复项,后端



注意是 排序数组,非严格递增排列,即已经是排好序的,只不过有重复元素

func removeDuplicates(nums []int) int {
    if len(nums) == 0 {
        return 0
    }
    i := 0
    for j := 1; j < len(nums); j++ {

      // 判断是否为重复元素
        if nums[j]!= nums[i] {
            i++
            nums[i] = nums[j]
        }
    }
    return i + 1
}
用Rust刷LeetCode之26 删除有序数组中的重复项,后端

Rust版本:

fn main() {
    let mut nums = vec![11233];
    // let mut nums= vec![0,0,1,1,1,2,2,3,3,4];
    let len = remove_duplicates(&mut nums);
    println!("去重后vec的长度为: {:?}", len); // 输出: 3
}

fn remove_duplicates(nums: &mut Vec<i32>) -> usize {
    if nums.is_empty() {
        return 0;
    }

    let mut i = 0;

    for j in 1..nums.len() {
        if nums[j] != nums[i] {
            i += 1;
            nums[i] = nums[j];
        }
    }

    i + 1
}
用Rust刷LeetCode之26 删除有序数组中的重复项,后端

remove_duplicates 函数使用双指针的方法来原地删除重复元素。指针 i 指向当前已处理的非重复元素的最后一个位置,指针 j 用于遍历数组。如果 nums[j] 与 nums[i] 不相等,则将 nums[j] 移到 nums[i+1] 的位置,并将 i 向前移动一步。最后返回 i+1,即为删除重复元素后的新长度。

参考资料

[1]

26. 删除排序数组中的重复项: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

本文由 mdnice 多平台发布文章来源地址https://www.toymoban.com/news/detail-756921.html

到了这里,关于用Rust刷LeetCode之26 删除有序数组中的重复项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode-Java:26.删除有序数组的重复项

    给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过

    2024年02月05日
    浏览(44)
  • 26. 删除有序数组中的重复项

    给你一个  升序排列  的数组  nums  ,请你  原地  删除重复出现的元素,使每个元素  只出现一次  ,返回删除后数组的新长度。元素的  相对顺序  应该保持  一致  。然后返回  nums  中唯一元素的个数。 考虑  nums  的唯一元素的数量为  k  ,你需要做以下事情确保

    2024年02月17日
    浏览(48)
  • 【LeetCode】移除元素、删除有序数组中的重复项、合并两个有序数组

    🧑‍💻作者: @情话0.0 📝专栏:《LeetCode》 🔖题目链接:移除元素、删除有序数组中的重复项、合并两个有序数组 给你一个数组 nums 和一个值 val,你需要 原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空

    2023年04月09日
    浏览(76)
  • LeetCode 26.删除排序数组中的重复项

    给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过

    2024年02月03日
    浏览(45)
  • 【每日一题】2.LeetCode——删除有序数组中的重复项

    📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点,相互学习进步! 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元

    2024年02月19日
    浏览(50)
  • 图灵日记之Leetcode删除有序数组中的重复项&&合并两个有序数组&&移除链表元素

    给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过

    2024年02月04日
    浏览(58)
  • LeetCode80. 删除有序数组中的重复项 II(JavaScript版)

    LeetCode题目链接 题目描述:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 js版本

    2024年02月06日
    浏览(34)
  • leetcode做题笔记80删除有序数组中的重复项 II

    给你一个有序数组  nums  ,请你  原地  删除重复出现的元素,使得出现次数超过两次的元素 只出现两次  ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在  原地 修改输入数组  并在使用 O(1) 额外空间的条件下完成。 说明: 为什么返回数值是整数,但输

    2024年02月12日
    浏览(50)
  • 115.删除有序数组中的重复项 removeDuplicatesFromSortedArray

    题目链接 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通

    2024年02月06日
    浏览(41)
  • 80. 删除有序数组中的重复项 II

    题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台  解题思路:因为数组有序,相等的元素一定相邻,所以可以使用一个变量num统计相等元素的个数,如果当前元素和前一个元素相等,令num++。另外使用一个变量len记录删除后数组的新长度,如果当前正在遍历的元

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包