初级算法-数组-从排序数组中删除重复项
2018-03-29 20:30
274 查看
LeetCode还是很人性化的 用到什么算法竟然还会提示并有百度百科的链接 此题用到了原地算法,就是输出结果覆盖输入结果,节省空间,附上代码,C语言,代码写的渣,还参考了网上的答案,如有哪里需要改进还请斧正!#include <stdio.h>
int removeDuplicates(int* nums, int numsSize)
{
int pre = 0, cur = 0;
if (numsSize == 0)
return 0;
while (cur < numsSize)
{
if (nums[pre] == nums[cur])
{
cur++;
}
else
{
nums[++pre] = nums[cur++];
}
}
return pre + 1;
}
int main()
{
int nums[1000];
int num, i = 0;
while (~scanf("%d", &num))
{
nums[i] = num;
i++;
}
removeDuplicates(nums, i);
}https://blog.csdn.net/lizhidefengzi/article/details/70196058 在大佬博客中又学到了新姿势 c++11又有了for的新用法And to not need the !i check in the loop: int removeDuplicates(vector<int>& nums) { int i = !nums.empty(); for (int n : nums) if (n > nums[i-1]) nums[i++] = n; return i; }
int removeDuplicates(int* nums, int numsSize)
{
int pre = 0, cur = 0;
if (numsSize == 0)
return 0;
while (cur < numsSize)
{
if (nums[pre] == nums[cur])
{
cur++;
}
else
{
nums[++pre] = nums[cur++];
}
}
return pre + 1;
}
int main()
{
int nums[1000];
int num, i = 0;
while (~scanf("%d", &num))
{
nums[i] = num;
i++;
}
removeDuplicates(nums, i);
}https://blog.csdn.net/lizhidefengzi/article/details/70196058 在大佬博客中又学到了新姿势 c++11又有了for的新用法And to not need the !i check in the loop: int removeDuplicates(vector<int>& nums) { int i = !nums.empty(); for (int n : nums) if (n > nums[i-1]) nums[i++] = n; return i; }
And to not need the !i check in the loop: int removeDuplicates(vector<int>& nums) { int i = !nums.empty(); for (int n : nums) if (n > nums[i-1]) nums[i++] = n; return i; }
相关文章推荐
- 【初级算法】1.从排序数组中删除重复项
- 算法练习——排序后的数组删除重复数字
- 【LeetCode-面试算法经典-Java实现】【026-Remove Duplicates from Sorted Array(删除排序数组中的重复元素)】
- 排序后的数组删除重复数字
- 删除排序数组中的重复数字 II
- 100. 删除排序数组中的重复数字
- Leetcode-26-从排序数组中删除重复项
- java__排序后的数组删除重复数字。给定升序排序的数组,如果数组有 22 个或 22 个以上相同的数字,去掉他们,直到剩下 22 个为止。
- lintcode&九章算法——101. 删除有序数组里的重复元素 II ? 待解决
- 计蒜客 排序后的数组删除重复数字
- 删除排序数组中的重复数字
- LintCode:删除排序数组中的重复数字 II
- leetcode 26 80 删除已排序数组中重复的数据
- 删除排序数组中的重复数字
- 计蒜客-第22题:排序后的数组删除重复数字
- lintcode ----删除排序数组中的重复数字
- Remove Duplicates from Sorted Array 从排序数组中删除重复
- 删除排序数组中的重复数字
- 在一个排序数组里面删除重复元素
- lintcode 容易题:Remove Duplicates from Sorted Array II 删除排序数组中的重复数字 II