首页 > 其他分享 >力扣80.删除排序数组中的重复项 II

力扣80.删除排序数组中的重复项 II

时间:2024-03-03 10:33:36浏览次数:17  
标签:力扣 index int nums II ++ 数组 80 指针

题目:

给你一个有序数组 nums ,请你删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。


实现方法:

使用map计数,用快慢指针方法,快指针不断加一,慢指针在计数小于出现次数时加一,再将快指针指向的数赋给慢指针指向的数。


func removeDuplicates(nums []int) int {
	m := make(map[int]int)
	index := 0
	for i := 0; i < len(nums); i++ {
		if m[nums[i]] < 2 { //由于是先判断,后加一,所以这里小于2
			m[nums[i]]++
			nums[index] = nums[i]
			index++
		}
	}
	return index
}

标签:力扣,index,int,nums,II,++,数组,80,指针
From: https://www.cnblogs.com/tjhzdsa/p/18049657

相关文章

  • 力扣118.杨辉三角
    题目:给定一个非负整数numRows,生成「杨辉三角」的前numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。实现方法:从第三行开始,通过循环,依次求取上一行相邻两数的和,添加到结果里。funcgenerate(numRowsint)[][]int{ varr[][]int fori:=0;i<nu......
  • 洛谷题单指南-二分查找与二分答案-P1182 数列分段 Section II
    原题链接:https://www.luogu.com.cn/problem/P1182题意解读:每段和的最大值越小,则分段数就越多,因此可以通过给定每段和的最大值,将分段数划分为两类:<=M,>M,对每段和的最大值进行二分即可。解题思路:二分的判定条件为,给定每段和的最大值,计算分段数,计算逻辑如下:依次遍历每一个数,求当前......
  • CF809D
    传送门平衡树优化神题,完全想不到平衡树能这么用!一看这题散发着一股DP的清香。\(dp[i][j]\)表示前\(i\)个数且第\(i\)个数为\(j\)的最长上升子序列长度。但是转移方程不好优化,状态表示可以滚动数组压掉一维。反方向考虑DP:\(dp[i][j]\)表示前\(i\)个数最长上升子序......
  • P8680 [蓝桥杯 2019 省 B] 特别数的和
    暴力秒了#include<bits/stdc++.h>#defineintlonglong//开longlong是个好习惯usingnamespacestd;boolbaozi(intx){while(x){intt=x%10;if(t==2||t==0||t==1||t==9)//数位判断{returntrue;......
  • STM32硬件IIC使用
    STM32硬件IIC使用.md概述虽然STM32的硬件IIC据说有设计缺陷,但是经过我的实践,至少STM32F103的硬件IIC是没问题的。这里给出STM32的硬件IIC的使用以及编程思路。1.STM32硬件IIC引脚在这里给出STM32F103的硬件IIC引脚,方便查阅使用2.STM32硬件IIC使用流程STM32的硬件IIC我认......
  • IIS10 隐藏 http server、删除 Windows Server IIS 10 和 ASP.NET 中的 HTTP 响应标头
    一、方案1IIS10.0中的removeServerHeaderrequestFiltering在IIS10.0(WindowsServer2016/2019)中,您可以通过在system.webServer节点中配置requestFiltering来移除Server标头:web.config<security><requestFilteringremoveServerHeader="true"/></securit......
  • 541. 反转字符串 II
    voidreversestring(char*s,inthead,inttail){while(head<=tail){chartemp=s[head];s[head]=s[tail];s[tail]=temp;head++;tail--;}}char*reverseStr(char*s,intk){intns=0;while(s......
  • 454. 四数相加 II c
    typedefstructnode{intsum;intcount;structnode*repeatnext;}hash;voidinit_hash(hash*h){for(inti=0;i<128;i++){h[i].sum=0;h[i].count=0;h[i].repeatnext=NULL;}}hash*find_hash(hash*h,intnumb......
  • 代码随想录算法训练营第三十二天 | 45.跳跃游戏II ,55. 跳跃游戏,122.买卖股票的最佳时
     122.买卖股票的最佳时机II 已解答中等 相关标签相关企业 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购......
  • [CF1804F] Approximate Diameter 题解
    题目链接题目分析显然图结构不太好维护,容易想到维护树结构。维护生成树看起来就不太靠谱,容易想到维护最短路树。keyobservation:我们固定一个端点(不妨为\(1\)),求出这个点到每个点的最短路长度的最大值\(x\)。则一定有\(\lceil{d\over2}\rceil\lex\led\)。证明:显然\(x\l......