首页 > 其他分享 >从排序阵列中删除重复 II

从排序阵列中删除重复 II

时间:2022-10-26 21:37:13浏览次数:107  
标签:index nums int 阵列 pos II ++ 排序 size


题目来源

​Remove Duplicates from Sorted Array II​

问题描述

“删除重复项目” 的进阶:
如果重复最多被允许两次,又该怎么办呢?

例如:
给定排序数列 nums = [1,1,1,2,2,3]

你的函数应该返回长度为 5,nums 的前五个元素是 1, 1, 2, 2 和 3。

解决方案

C++

class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int k = 1;//只允许两次
int size = nums.size();
if (size == 0 || size == 1)
return size;
int pos = 0;
for (int i = 1; i < size; i++)
{
if (nums[i] != nums[pos])
{
k=1;
pos++;
nums[pos] = nums[i];
}
else if (k<2){
k++;
pos++;
nums[pos] = nums[i];
}
}
return pos+1;
}
};

Java

class Solution {
public int removeDuplicates(int[] nums) {
if (nums.length <= 2)
return nums.length;
int index = 2;
for (int i = 2; i < nums.length; i++) { //从第三个元素开始
if (nums[i] != nums[index - 2]) //由于排好了序,相等说明 i至少是第三个重复元素
{
nums[index] = nums[i];
index++;
}
}
return


标签:index,nums,int,阵列,pos,II,++,排序,size
From: https://blog.51cto.com/u_15847885/5798570

相关文章

  • 从排序数组中删除重复项
    题目来源​​RemoveDuplicatesfromSortedArray​​题目描述给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。不要另外定义一个数......
  • 63 不同路径 II
    题目63不同路径一个机器人位于一个 mxn 网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图......
  • 从小到大排序
    题目描述六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i](即w[j]>=h[i]),他才会上去表演节目。老师的......
  • 倒序排序求次数平方和最大值
    题目描述有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值例如:字符串"abacaba",里面包括4个'a',2个'b',1个......
  • 用函数模板实现对n个数进行由小到大排序
    #include<iostream>usingnamespacestd;//用模板实现两个数值交换template<classT>voidtswap(T*x,T*y){inttemp=*x;*x=*y;*y=temp;}//排序模板......
  • ASCII码经典对照图
    ASCII码经典对照图......
  • 大数据基础之java常用API二(数组元素排序,冒泡排序、Arrays类,包装类,Date类)
    (大数据基础之常用API二)1.数组元素排序1.1冒泡排序图解代码演示publicstaticvoidmain(String[]args){int[]arr={25,69,80,57,13};//遍......
  • 多次排序减去摸一个值,求平方和最小值
    题目描述有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值例如:字符串"abacaba",里面包括4个'a',2个'b',1个......
  • python3 使用位图排序
    代码frombitmapimportBitMapa=[1,5,3,4,7,8,15,6,9]print(a)bm=BitMap(max(a))#print(dir(bm))print(bm.tostring())foriina:bm.set(i)print(bm......
  • 【leetcode_C++_字符串_day7】344_反转字符串&541_反转字符串II&&剑指Offer_05_替换空
    344.反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)......