Leetcode26输入输出练习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Leetcode26输入输出练习


前言


给你⼀个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现⼀次 ,返回删除后数组的
新⻓度。元素的 相对顺序 应该保持 ⼀致 。
由于在某些语⾔中不能改变数组的⻓度,所以必须将结果放在数组nums的第⼀部分。更规范地说,如果在删除重
复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。
将最终结果插⼊ nums 的前 k 个位置后返回 k 。
不要使⽤额外的空间,你必须在 原地 修改输⼊数组并在使⽤ O(1) 额外空间的条件下完成。

输入输出

示例 1:
输⼊:nums = [1,1,2] 输出:2, nums = [1,2,_] 解释:函数应该返回新的⻓度 2 ,并且原数组 nums 的前两个元素
被修改为 1, 2 。不需要考虑数组中超出新⻓度后⾯的元素。

public class removeDuplicates {
    public static void main(String[] args) {
        // 创建一个 Scanner 对象,用于从控制台读取输入
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入一串升序排列的整数

        String input = scanner.nextLine(); // 读取用户输入的一整行
        //"0,0,1,1,1,2,2,3,3,4"
        // 将输入的字符串分割成字符串数组,并转换为整数数组
        String[] inputArray = input.split(",");
        // 经过 split(" ") 分割后,变成了:inputArray = ["0", "0", "1", "1", "1", "2", "2", "3", "3", "4"]
        int[] nums = new int[inputArray.length];

        for (int i = 0; i < inputArray.length; i++) {
            nums[i] = Integer.parseInt(inputArray[i]); // 将字符串转换为整数
        }

        // 调用方法,获取删除重复项后的新长度
        int newLength = removeDuplicates(nums);

        // 输出新长度
        System.out.println(newLength);

        // 输出删除重复项后的数组内容(只输出前 newLength 个元素)

        for (int i = 0; i < newLength; i++) {
            System.out.print(nums[i] + " ");
        }
    }
    public static int removeDuplicates(int nums[]){
        int n = nums.length;
        int j = 0;
        for(int i = 0; i < n; i++){
            if(i == 0 || nums[i] != nums[i-1]){
                nums[j] = nums[i];
                j++;
            }
        }
        return j;
    }
}

结果如图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值