26. 删除排序数组中的重复项

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

Java

/*
 * @Author: Goog Tech
 * @Date: 2020-08-04 08:01:32
 * @LastEditTime: 2020-08-04 08:09:33
 * @Description: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
 * @FilePath: \leetcode-googtech\#102. Binary Tree Level Order Traversal\Solution.java
 * @Reference: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/solution/shuang-zhi-zhen-shan-chu-zhong-fu-xiang-dai-you-hu/
 */

/*
 * @lc app=leetcode.cn id=26 lang=java
 *
 * [26] 删除排序数组中的重复项
 */

// @lc code=start
class Solution {
    // 双指针法
    public int removeDuplicates(int[] nums) {
        // 判断数组长度及是否为空
        if(nums == null || nums.length == 0) return 0;
        // 初始化前后指针
        int left = 0, right = 1;
        // 通过移动前后指针来遍历数组中的元素
        while(right < nums.length) {
            // 若前后指针所指元素不相同(此时前后指针中间隔一个元素),则将right位置上的元素复制到left位置上
            // 然后left与right同时向后移动一位
            if(nums[left] != nums[right]) {
                nums[left + 1] = nums[right];
                left ++;
            }
            // 若前后指针所指的元素相同则right向后移动一位
            right++;
        }
        // 返回数组的长度
        return left + 1;
    }
}

// @lc code=end

Python

'''
Author: Goog Tech
Date: 2020-08-04 07:46:24
LastEditTime: 2020-08-04 08:11:09
Description: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
FilePath: \leetcode-googtech\#102. Binary Tree Level Order Traversal\Solution.py
Reference: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/solution/shuang-zhi-zhen-shan-chu-zhong-fu-xiang-dai-you-hu/
'''

#
# @lc app=leetcode.cn id=26 lang=python
#
# [26] 删除排序数组中的重复项
#

# @lc code=start
class Solution(object):
    # 双指针法
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        # 判断数组长度及是否为空
        if not nums or len(nums) == 0: return 0
        # 初始化前后指针
        left, right = 0, 1
        # 通过移动后指针来遍历数组的中元素
        while right < len(nums):
            # 若前后指针所指元素不相等(此时前后指针中间隔一个元素),则将right位置上的元素复制到left位置上
            # 然后left与right同时向后移动一位
            if nums[left] != nums[right]:
                nums[left + 1] = nums[right]
                left += 1
            # 若前后指针所指元素相同等则right向后移动一位
            right += 1
        # 返回新数组的长度
        return left + 1

# @lc code=end
Copyright © GoogTech 2021 all right reserved,powered by GitbookLast update time : 2021-09-15 01:55:05

results matching ""

    No results matching ""