删除排序数组中的重复数字 II · Remove Duplicates from Sorted Array II
重复一次
[抄题]:
给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。
不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。
[思维问题]:
[一句话思路]:
不重复时,size扩大
[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):
[画图]:
[一刷]:
[总结]:
[复杂度]:Time complexity: O(n) Space complexity: O(1)
[英文数据结构,为什么不用别的数据结构]:
[其他解法]:
[Follow Up]:
[题目变变变]:
链表
public class Solution {
    /*
     * @param nums: An ineger array
     * @return: An integer
     */
    public int removeDuplicates(int[] nums) {
        if (nums.length == 0 || nums == null) {
            return 0;
        }
        int size = 0;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] != nums[size]) {
                nums[++size] = nums[i];
            }
        }
        return size + 1;
    }
}
重复多个
[抄题]:
What if duplicates are allowed at most twice?
For example,
Given sorted array nums = [1,1,1,2,2,3],
Your function should return length = 5, with the first five elements of nums being 1, 1, 2, 2 and 3. It doesn't matter what you leave beyond the new length.
[思维问题]:
不知道怎么改变数组中元素的个数:其实只要调整角标 加减就行了
[一句话思路]:
用count < 2控制,不同元素时,size只加一次
[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):
[画图]:
[一刷]:
count控制了所有元素的重复情况,没有重复时,恢复count = 1
[总结]:
注意恢复count = 1
[复杂度]:Time complexity: O(n) Space complexity: O(1)
[英文数据结构,为什么不用别的数据结构]:
[其他解法]:
[Follow Up]:
[题目变变变]:
链表
public class Solution {
    /**
     * @param A: a array of integers
     * @return : return an integer
     */
    public int removeDuplicates(int[] nums) {
        if (nums.length == 0 || nums == null) {
            return 0;
        }
        int count = 1;
        int size = 0;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] == nums[size]) {
                if (count < 2) {
                    nums[++size] = nums[i];
                    count++;
                }
            }
            else {
                nums[++size] = nums[i];
                count = 1;//
            }
        }
        return size + 1;
    }
}
删除排序数组中的重复数字 II · Remove Duplicates from Sorted Array II的更多相关文章
- C#LeetCode刷题之#26-删除排序数组中的重复项(Remove Duplicates from Sorted Array)
		
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3622 访问. 给定一个排序数组,你需要在原地删除重复出现的元素, ...
 - lintcode :Remove Duplicates from Sorted Array II 删除排序数组中的重复数字 II
		
题目: 删除排序数组中的重复数字 II 跟进“删除重复数字”: 如果可以允许出现两次重复将如何处理? 样例 给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A=[1,1,2,2, ...
 - lintcode101 删除排序数组中的重复数字 II
		
删除排序数组中的重复数字 II 跟进“删除重复数字”: 如果可以允许出现两次重复将如何处理? 在:lintcode100删除排序数组中的重复数字 的基础上进行改进. class Solution ...
 - lintcode :Remove Duplicates from Sorted Array 删除排序数组中的重复数字
		
题目: 删除排序数组中的重复数字 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. 样例 ...
 - lintcode100 删除排序数组中的重复数字
		
删除排序数组中的重复数字 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. 您在真实的 ...
 - 删除排序数组中的重复数字 II
		
题目连接 http://www.lintcode.com/zh-cn/problem/remove-duplicates-from-sorted-array-ii/ 题目大意 跟进“删除重复数字”: ...
 - 101 删除排序数组中的重复数字 II
		
原题网址:http://www.lintcode.com/zh-cn/problem/remove-duplicates-from-sorted-array-ii/# 跟进“删除重复数字”: 如果可以 ...
 - [Swift]LeetCode80. 删除排序数组中的重复项 II | Remove Duplicates from Sorted Array II
		
Given a sorted array nums, remove the duplicates in-place such that duplicates appeared at most twic ...
 - LintCode_100  删除排序数组中的重复数字 ||
		
题目 跟进“删除重复数字”: 如果可以允许出现两次重复将如何处理? 样例 给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A=[1,1,2,2,3]. C++代码 int rem ...
 
随机推荐
- 无法连接redis问题
			
今天加入redis但连接一直报无法获取到连接,看配置 今天加入redis但连接一直报无法获取到连接,看配置 ``` <bean id="redisResources" cla ...
 - JpGraph使用详解之中文乱码解决方法
			
在前面的JpGraph使用详解这篇文章,已经对JpGraph的使用方法作了详细的交代,前面说好的,接下来解决中文乱码. JpGraph为什么会出现中文乱码 在JpGraph中默认是要把字符串转成utf ...
 - mysql存储过程中遍历数组字符串的两种方式
			
第一种:多次使用substring_index()的方法 DELIMITER $$ DROP PROCEDURE IF EXISTS `array`$$ CREATE PROCEDURE `arra ...
 - php metaphone()函数解析
			
php metaphone() 函数计算字符串的 metaphone 键,本文章向码农们介绍 php metaphone() 函数的基本用法和实例,需要的码农可以参考一下本文章的方法和实例. 定义和用 ...
 - Spark standalone运行模式
			
Spark Standalone 部署配置 Standalone架构 手工启动一个Spark集群 https://spark.apache.org/docs/latest/spark-standalo ...
 - bat批处理(二):%0 %1——给批处理脚本传递参数
			
初次接触批处理脚本觉得有点意思,所以决定写一个小功能试验一下,谁知刚一开始就发现遇到了麻烦,本想着使用参数来控制程序的运行结果,可是参数怎么传进去呢,于是研究了一番,最终发现这个参数的传递与main函 ...
 - js中在一个函数中引用另一个函数中的函数,可以这么做
			
在另一个函数中,将需要使用的函数绑定在window下 // UEditor $(function () { window.ue = UE.getEditor('editor', { // ue即可成为 ...
 - OpenACC 计算规约时发现的小坑
			
▶ 使用 OpenACC 的 parallel 构件来计算规约,主要想说的是 win10 pgi 和 win10 WSL pgi 结果的不同和关于 for 循环的一个小坑 ● 正常的代码 #inclu ...
 - leetcode950
			
from queue import Queue class Solution: def deckRevealedIncreasing(self, deck): n = len(deck) que = ...
 - leetcode504
			
public class Solution { public string ConvertToBase7(int num) { ? "" : "-"; var ...