当前位置:网站首页>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
边栏推荐
- 要上市的威马,依然给不了百度信心
- Lua emmylua annotation details
- Recast of recastnavigation
- 华为云ModelArts的使用教程(附详细图解)
- What if Kaili can't input Chinese???
- 网上开户安全吗?是真的吗?
- TCP两次挥手,你见过吗?那四次握手呢?
- [210] usage of PHP delimiter
- Unity makes revolving door, sliding door, cabinet door drawer, click the effect of automatic door opening and closing, and automatically play the sound effect (with editor extension code)
- Flask lightweight web framework
猜你喜欢

Grain Mall (I)

比李嘉诚还有钱的币圈大佬,刚在沙特买了楼

华为云ModelArts的使用教程(附详细图解)

Talk about seven ways to realize asynchronous programming

uni-app与uviewUI实现仿小米商城app(附源码)

Self reflection of a small VC after two years of entrepreneurship

上市公司改名,科学还是玄学?

DB engines database ranking in July 2022: Microsoft SQL Server rose sharply, Oracle fell sharply

Make a grenade with 3DMAX

Weima, which is going to be listed, still can't give Baidu confidence
随机推荐
The controversial line of energy replenishment: will fast charging lead to reunification?
【Hot100】32. 最长有效括号
Summary of subsidy policies across the country for dcmm certification in 2022
怎么开户才是安全的,
2022年DCMM认证全国各地补贴政策汇总
S5PV210芯片I2C适配器驱动分析(i2c-s3c2410.c)
【211】go 处理excel的库的详细文档
Pytorch深度学习之环境搭建
Device interface analysis of the adapter of I2C subsystem (I2C dev.c file analysis)
Implementation of shell script replacement function
简单易用的地图可视化
用于图数据库的开源 PostgreSQL 扩展 AGE被宣布为 Apache 软件基金会顶级项目
gatling 之性能测试
机器学习概念漂移检测方法(Aporia)
90后开始攒钱植发,又一个IPO来了
如何进行MDM的产品测试
提升复杂场景三维重建精度 | 基于PaddleSeg分割无人机遥感影像
Large scale service exception log retrieval
Is it safe to open an account online? is that true?
[211] go handles the detailed documents of Excel library