【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组

作者:✿✿ xxxflower. ✿✿
博客主页:xxxflower的博客
专栏:【力扣/牛客刷题】篇
语录:⭐每一个不曾起舞的日子,都是对生命的辜负。⭐

题目OJ链接:27.移除元素

【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第1张图片
【分析题目】我们首先需要来判断一下这个数组是否为空或者数组的长度是否为0,如果是的话,不用计算直接返回0;
然后,我们可以定义一个数字 i 和 j 。i 表示数组原来的下标。j 表示数组新的下标。用一个循环遍历数组,用 if 语句来判断一下 nums中的元素是否为val,不是val 则存到位 j 下标中。以上,我们可以得到代码:

class Solution {
    public int removeElement(int[] nums, int val) {
        if(nums == null || nums.length == 0){
            return 0;
        }
        int j = 0 ;
        for(int i = 0;i < nums.length; i++){
            if(nums[i] != val){
                nums[j] = nums[i];
                j++;
            }
        }
        return j;
    }
}

【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第2张图片
题目OJ链接:26. 删除有序数组中的重复项

【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第3张图片
【分析题目】这是一个升序数组,因此不需要考虑排序的问题。
【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第4张图片
【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第5张图片
以上,我们可以得到代码:

class Solution {
    public int removeDuplicates(int[] nums) {
        int j = 0;
        for(int i = 1;i < nums.length;i++){   
            if(nums[j] != nums[i]){
                nums[++j] = nums[i];
            }
        }
        return j+1;
    }
}

【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第6张图片
题目OJ链接:88. 合并两个有序数组
【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第7张图片
【分析题目】此题可以偷(只因)机取巧。大聪明必备(bushi)
我们可以直接把nums2放到nums1中0位置处,在用Arrays.sort();快排直接解决。
【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第8张图片
以上:

class Solution {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int j = 0;
        int i = 0;
        for(i = m,j = 0;i < nums1.length;i++){
            nums1[i] = nums2[j];
            j++;
        }
        Arrays.sort(nums1);
    }
}

【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第9张图片
好啦。今天的做题就到这里8️⃣,每日“一”题。
【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组_第10张图片

你可能感兴趣的:(力扣/牛客刷题,leetcode,算法,数据结构)