博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Middle-题目47:80. Remove Duplicates from Sorted Array II
阅读量:2432 次
发布时间:2019-05-10

本文共 624 字,大约阅读时间需要 2 分钟。

题目原文:

Follow up for “Remove Duplicates”:
What if duplicates are allowed at most twice?
题目大意:
接,这次允许一个元素最多出现两次。
题目分析:
和上题差不多,只是这次比较的两个指针是i和i-2,如果不相等则计数加一。因为这种情况下i-2所指元素最多只能加入两次.(若数组为….1,1,1,2,….则第一个1会跳过去,第二个和第三个1会加入)
源码:(language:c)

int removeDuplicates(int* nums, int numsSize) {    int start = 0;    for(int i = 0;i < numsSize;i++) {        if(i == 0 || i == 1)             nums[start++] = nums[i];        else {            if(nums[i] != nums[start-2])                 nums[start++] = nums[i];        }    }    return start;   }

成绩:

8ms,beats 11.11%,众数8ms,87.30%
Cmershen的碎碎念:
本题还可以推广,若允许一个元素最多出现n次?是不是直接改为i和i-n两个指针即可?有待探索。

转载地址:http://qfomb.baihongyu.com/

你可能感兴趣的文章
MySQL优化Limit查询语句
查看>>
轻松入门MySQL主从复制原理
查看>>
SpringCloud全家桶---Zuul网关
查看>>
基于zuul和ribbon的灰度发布方案
查看>>
JVM常用垃圾收集器参数说明
查看>>
MySQL索引基础知识梳理
查看>>
MySQL事务ACID底层实现原理
查看>>
关于MySQL wait_timeout问题记录
查看>>
基础算法面试题---如何用栈实现队列
查看>>
基础算法面试题---如何用队列实现栈(1)
查看>>
基础算法面试题---如何用队列实现栈(2)
查看>>
基础算法面试题---如何数组实现栈和队列
查看>>
API接口安全性设计以及各参数的作用
查看>>
《Netty权威指南 第2版》学习笔记(1)---服务端与客户端开发入门
查看>>
《Netty权威指南 第2版》学习笔记(6)--- HTTP协议开发应用
查看>>
链表算法面试题---删除链表中的重复元素II
查看>>
链表算法面试题---合并两个链表
查看>>
链表算法面试题---旋转链表
查看>>
链表算法面试题---交换链表的节点I
查看>>
链表算法面试题---交换链表的节点II
查看>>