leetcode-删除排序数组中的重复项

本文介绍了解决LeetCode上删除排序数组中的重复项问题的PHP和Java代码实现。PHP部分使用了while和for循环,分别展示了两种不同的解决策略;Java部分则通过一次遍历实现了高效解法。

leetcode-删除排序数组中的重复项

php code

while 状态:通过 执行用时:40 ms 内存消耗:16.8 MB

	function removeDuplicates(&$nums) {
        $max = count($nums);
        if($max <= 0) return 0;
        $j = 1;
        $i = 0;
        while($j<$max){
            if($nums[$i] == $nums[$j]){
                unset($nums[$j]);
            } else {
                $i = $j;             
            }
            $j++;
        }
        return count($nums);
    }

for 状态:通过 执行用时:16 ms 内存消耗:16.8 MB

	function removeDuplicates(&$nums) {
        $max = count($nums);
        if ($max <= 0) return 0;
        
        $n= $nums[0];
        for ($i=1; $i<$max; $i++) {
            if ($n != $nums[$i]) 
                $n = $nums[$i];
            else
                unset($nums[$i]);
        }
        return count($nums);
    }

java code

class Solution {
    public int removeDuplicates(int[] nums) {
        int i = 0;
        for (int j = 1; j < nums.length; j++) {
            if (nums[j] != nums[i]) {
                i++;
                nums[i] = nums[j];
            }
        }
        System.out.println(Arrays.toString(nums));
        return i + 1;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值