当前位置:网站首页>Journal des problèmes de brosse à boutons de force / day6 / 6.28
Journal des problèmes de brosse à boutons de force / day6 / 6.28
2022-07-04 18:23:00 【Bobo Clean Toilet Spirit】
Novice Village
Supprimer les éléments dupliqués d'un tableau ordonné,Aiguille à deux doigts
Cette méthode comporte deux exigences,Pour modifier sur la base du tableau original,Ne pas utiliser d'autres tableaux
Si la longueur du tableau est0;
Sortie directe
Si la longueur du tableau n'est pas0;
Définir deux pointeurs,fastEtslow,fastEtslowLa valeur initiale de1,Parce que pour comparerfastEtfast-1Éléments de
fastIndice utilisé pour traverser tous les éléments du tableau,slowUtilisé pour enregistrer le nombre d'éléments uniques
Quandfast-1EtfastLes éléments pointés ne sont pas les mêmes,Oui.fastLes éléments représentés sont donnés àslowÉléments représentés,Et va++slow,++fast
QuandfastEtfast-1Les éléments pointés sont les mêmes,++fast,slowSans changement
Par exemple, la figure ci - dessous,Quand le premier cycle commence,fast-=1,Éléments représentés0,Etfast-1Les éléments représentés sont les mêmes,En ce moment,fastContinuez à droite,slowSans changement.


fast=2Heure,L'élément pointé est1,Etfast-1Élément pointé0C'est différent.,À ce stade,fastÉlément pointé1ÀslowÉlément pointé,nums[slow]=nums[fast],Et vaslowÀ droite.,++slow,fastContinuez à droite,++fast


Continuez à avancer ......
Jusqu'àfast=9Heure(n=10,fast<n),Oui.nums[9]Valeur attribuée ànums[4],++slow=5,À ce stade,nums[slow]Produits, Est un tableau qui élimine les éléments dupliqués .
slow C'est la longueur du nouveau tableau , Est modifié sur la base du tableau original .
Exemples

Comment résoudre le problème:Comme ci - dessus
class Solution {
public int removeDuplicates(int[] nums) {
int n = nums.length;
if (n == 0) { // Déterminer si la longueur du tableau est 0
return 0;
}
int fast = 1, slow = 1; // Réglage de deux pointeurs rapides et lents
while (fast < n) { //La longueur du tableau estn, Donc l'emplacement de l'élément à la fin est n-1
if (nums[fast] != nums[fast - 1]) {
nums[slow] = nums[fast];
++slow; // Enfin, la longueur du tableau sans duplication doit être sortie ,Alors choisissez++slow
}
++fast; // Empêcher l'entrée illégale dans la boucle
}
return slow; // Renvoie la longueur du tableau sans répétition
}
}Autres idées :

foreachTraversée (for Chaque)
jdk5.0Nouvelles caractéristiques,NouveauforCycle
for(type x:type Y)
TraverséeTableau ou collectionYÉléments de, Chaque traversée assigne la valeur de l'élément à x
Par exemple
for(int num:nums)
C'est ça.nums Ce tableau traverse , Combien de numéros , Combien de fois .
Donnez une de ces valeurs à chaque fois que vous traversez num;
foreachPeut être utiliséforSubstitution de déclarations
for(int i =0;i<nums.length;i++){
System.out.print(nums[i]+" ");
}Idées générales:

class Solution {
public int removeDuplicates(int[] nums) {
return process(nums, 1);
}
int process(int[] nums, int k) {
int idx = 0;
for (int x : nums) {
if (idx < k || nums[idx - k] != x) nums[idx++] = x;
}
return idx;
}
}
Les deux dernières idées sont citées leetcode Contenu du blogueur shanggongshui sanye ,En cas d'infraction,Contact supprimer
边栏推荐
- 12 - explore the underlying principles of IOS | runtime [isa details, class structure, method cache | t]
- 7 RSA Cryptosystem
- Face_ Attendance statistics of recognition face recognition
- 创业两年,一家小VC的自我反思
- 【Hot100】32. 最长有效括号
- Flask lightweight web framework
- TCP waves twice, have you seen it? What about four handshakes?
- 曾经的“彩电大王”,退市前卖猪肉
- Win32 API 访问路由的加密网页
- Unity 制作旋转门 推拉门 柜门 抽屉 点击自动开门效果 开关门自动播放音效 (附带编辑器扩展代码)
猜你喜欢

删除二叉搜索树中的节点附图详解
![[cloud native] what is the](/img/00/0cb0f38bf3eb5dad02b3bc4ead36ba.jpg)
[cloud native] what is the "grid" of service grid?
Blood spitting finishing nanny level series tutorial - play Fiddler bag grabbing tutorial (2) - first meet fiddler, let you have a rational understanding

股价大跌、市值缩水,奈雪推出虚拟股票,深陷擦边球争议

78 year old professor Huake impacts the IPO, and Fengnian capital is expected to reap dozens of times the return

【Hot100】32. Longest valid bracket

uni-app与uviewUI实现仿小米商城app(附源码)
![[HCIA continuous update] WAN technology](/img/31/8e9ed888d22b15eda5ddcda9b8869b.png)
[HCIA continuous update] WAN technology

要上市的威马,依然给不了百度信心

Unity 制作旋转门 推拉门 柜门 抽屉 点击自动开门效果 开关门自动播放音效 (附带编辑器扩展代码)
随机推荐
[daily question] 871 Minimum refueling times
Superscalar processor design yaoyongbin Chapter 7 register rename excerpt
mysql5.7安装教程图文详解
High school physics: force, object and balance
为啥有些线上演唱会总是怪怪的?
项目通用环境使用说明
表情包坑惨职场人
Redis主从复制
股价大跌、市值缩水,奈雪推出虚拟股票,深陷擦边球争议
要上市的威马,依然给不了百度信心
Clever use of curl command
Analysis of I2C adapter driver of s5pv210 chip (i2c-s3c2410. C)
你应该懂些CI/CD
ISO27001认证办理流程及2022年补贴政策汇总
I always thought that excel and PPT could only be used for making statements until I saw this set of templates (attached)
Implementation of shell script replacement function
Set the transparent hidden taskbar and full screen display of the form
I2C子系统之适配器的设备接口分析(i2c-dev.c文件分析)
线上MySQL的自增id用尽怎么办?
Superscalar processor design yaoyongbin Chapter 5 instruction set excerpt