代码拉取完成,页面将自动刷新
#define _CRT_SECURE_NO_WARNINGS 1
//void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
// //oj题不需要考虑他的空间存储问题
// int i = 0, j = 0;
// if (n == 0)
// return;
// while (i < m)
// {
// if (nums1[i] > nums2[j])
// {
// //nums1的元素后移1位
// int end = m;
// while (end > i)
// {
// nums1[end] = nums1[end - 1];
// end--;
// }
// nums1[i++] = nums2[j++];
// n--;
// }
// else
// {
// i++;
// }
// if (j == nums2Size)
// return;
// }
// //后面元素补齐
// while (n)
// {
// nums1[i++] = nums2[j++];
// n--;
// }
//
//}
//
//int main()
//{
// int a[] = { 2,0 };
// int b[] = { 1 };
// merge(a, 2, 1, b, 1, 1);
// return 0;
//}
//从后往前替换
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
//oj题不需要考虑他的空间存储问题
int i = m - 1;
int j = n - 1;
int end = nums1Size - 1;
int cur = 0;
while (i >= 0 || j >= 0)
{
if (i == -1)
cur = nums2[j--];
else if (j == -1)
cur = nums1[i--];
else if (nums1[i] > nums2[j])
cur = nums1[i--];
else
cur = nums2[j--];
nums1[end--] = cur;
}
}
//int removeDuplicates(int* nums, int numsSize) {
// //方法1,暴力移动,时间复杂度O(N^2)
// //方法2
// int j = 0;
// if (numsSize < 2)
// return numsSize;
// for (int i = 1; i < numsSize; i++)
// {
// if (nums[j] != nums[i])
// {
// nums[++j] = nums[i];//找到不同的把他赋值的到下一位
// }
// }
// return ++j;
//}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。