题目: 从排序数组中删除重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

示例 1:

给定数组 nums = [1,1,2],
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。
你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,0,1,1,1,2,2,3,3,4],
函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。

你不需要考虑数组中超出新长度后面的元素。
说明:
为什么返回数值是整数,但输出的答案是数组呢?
请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {print(nums[i]);
}

代码实现:

int removeDuplicates(int* nums, int numsSize) {int i, j;if(numsSize == 0){return 0;}for(i = 1, j = 0; i < numsSize; i++){if(nums[j] != nums[i]){j++;nums[j] = nums[i];}}return j + 1;
}

解题思路
(1) 相邻数组项应取头一项;
(2) 不相邻数组项应取后一项并插入数组;

Leetcode算法题(C语言)2相关推荐

  1. LeetCode算法题-Nth Digit(Java实现)

    这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...

  2. LeetCode算法题-Reverse Linked List(Java实现)

    这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...

  3. LeetCode算法题-Convert a Number to Hexadecimal(Java实现)

    这是悦乐书的第219次更新,第231篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405).给定一个整数,写一个算法将其转换为十六进制.对于负整数,使 ...

  4. LeetCode算法题-Minimum Depth of Binary Tree(Java实现)

    这是悦乐书的第168次更新,第170篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第27题(顺位题号是111).给定二叉树,找到它的最小深度.最小深度是沿从根节点到最近的 ...

  5. LeetCode算法题-Valid Palindrome II(Java实现)

    这是悦乐书的第287次更新,第304篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第155题(顺位题号是680).给定非空字符串s,最多可以删除一个字符. 判断它是否是回 ...

  6. LeetCode算法题-K-diff Pairs in an Array(Java实现)

    这是悦乐书的第254次更新,第267篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第121题(顺位题号是532).给定一个整数数组和一个整数k,您需要找到数组中唯一的k- ...

  7. LeetCode算法题-Jewels and Stones(Java实现)

    这是悦乐书的第313次更新,第334篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第182题(顺位题号是771).字符串J代表珠宝,S代表你拥有的石头.S中的每个字符都是 ...

  8. LeetCode算法题-Repeated String Match(Java实现)

    这是悦乐书的第289次更新,第307篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第156题(顺位题号是686).给定两个字符串A和B,找到A必须重复的最小次数,使得B是 ...

  9. LeetCode算法题-Factorial Trailing Zeroes(Java实现)

    这是悦乐书的第183次更新,第185篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第42题(顺位题号是172).给定一个整数n,返回n!中的尾随零数.例如: 输入:3 输 ...

  10. 【算法】LeetCode算法题-Maximum Subarray

    这是悦乐书的第154次更新,第156篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第13题(顺位题号是53).给定一个整数数组nums,找出一个最大和,此和是由数组中索引 ...

最新文章

  1. 检测msmq里消息的数量
  2. php验证器的调用,ThinkPHP5 验证器的具体使用
  3. Docker (3)核心概念
  4. LUOGU P4587 [FJOI2016]神秘数(主席树)
  5. myeclipse中配置spring xml自己主动提示
  6. 你的元器件为什么会无缘无故地失效了?
  7. 网页关闭(解决window.close在火狐下不兼容问题)
  8. Android 编辑中的快捷键
  9. 正版卡巴斯基安全部队2011激活码1年
  10. vue中input多选_vue.js动态添加删除文本框input、下拉框select、单选radio、多选checkbox的方案。...
  11. 典型环节的电路模拟MATLAB,典型环节的模拟及参数测试
  12. 多媒体行业 常用英语
  13. Xilinx ISE 千兆以太网通信基础
  14. 如何根据论文文章名称一键查询该篇论文的引用格式?
  15. Kali linux破解Wi-Fi
  16. Turbo编码相关知识
  17. jQuery 性能优化
  18. WebRTC技术详解
  19. Android EditText 监听回车键
  20. AquaCrop_原理学习笔记08:胁迫系数和冠层发育

热门文章

  1. android 游戏引擎 排行_4月旗舰手机性能排行榜:小米10 Pro第四,OPPO Ace2第五
  2. linux内核那些事之Sparse vmemmap
  3. 笨方法“学习python笔记之数学计算
  4. shuffle理解【增加模型的泛化能力】
  5. Bootstrap-CSS-按钮-图片-辅助类-响应式
  6. python给视频添加声音_python 给视频加入音频
  7. ubuntu添加环境变量PATH
  8. 导航栏-滚动渐变 - 封装版
  9. js自动篡改页面url地址 - 场景篇
  10. 达梦数据库修改字段长度_解决达梦数据库新增大字段报错问题