前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【力扣/牛客刷题】27. 移除元素 || 26. 删除有序数组中的重复项 || 88. 合并两个有序数组

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

作者头像
xxxflower
发布2023-04-16 17:41:57
发布2023-04-16 17:41:57
64000
代码可运行
举报
文章被收录于专栏:《数据结构》《数据结构》
运行总次数:0
代码可运行

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

【分析题目】我们首先需要来判断一下这个数组是否为空或者数组的长度是否为0,如果是的话,不用计算直接返回0; 然后,我们可以定义一个数字 i 和 j 。i 表示数组原来的下标。j 表示数组新的下标。用一个循环遍历数组,用 if 语句来判断一下 nums中的元素是否为val,不是val 则存到位 j 下标中。以上,我们可以得到代码:

代码语言:javascript
代码运行次数:0
复制
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;
    }
}

题目OJ链接:26. 删除有序数组中的重复项

【分析题目】这是一个升序数组,因此不需要考虑排序的问题。

以上,我们可以得到代码:

代码语言:javascript
代码运行次数:0
复制
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;
    }
}

题目OJ链接:88. 合并两个有序数组

【分析题目】此题可以偷(只因)机取巧。大聪明必备(bushi) 我们可以直接把nums2放到nums1中0位置处,在用Arrays.sort();快排直接解决。 以上:

代码语言:javascript
代码运行次数:0
复制
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);
    }
}

好啦。今天的做题就到这里8️⃣,每日“一”题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档