1.给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
说明:
- 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
- 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
-
输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 输出: [1,2,2,3,5,6]
-
class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { for(int i=0;i<n;i++){ nums1[m++]=nums2[i]; } Arrays.sort(nums1); } }
2.
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
-
示例 1:
给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为
1,
你不需要考虑数组中超出新长度后面的元素。2.
-
class Solution { public int removeDuplicates(int[] nums) { if(nums.length==0){ return 0; } int index=0; for(int j=1;j<nums.length;j++){ if(nums[index]!=nums[j]){ index++; nums[index]=nums[j]; } } return index+1; } }