当前位置:网站首页>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
边栏推荐
- Win32 API access route encrypted web pages
- 中断的顶半部和底半部介绍以及实现方式(tasklet 和 工作队列)
- The top half and bottom half of the interrupt are introduced and the implementation method (tasklet and work queue)
- I wrote a learning and practice tutorial for beginners!
- 内核中时间相关的知识介绍
- Recast of recastnavigation
- 2022年DCMM认证全国各地补贴政策汇总
- 90后开始攒钱植发,又一个IPO来了
- What if Kaili can't input Chinese???
- I2C子系统之适配器的设备接口分析(i2c-dev.c文件分析)
猜你喜欢
数学分析_笔记_第7章:多元函数的微分学
The controversial line of energy replenishment: will fast charging lead to reunification?
mysql5.7安装教程图文详解
RecastNavigation 之 Recast
TCP两次挥手,你见过吗?那四次握手呢?
【Hot100】32. 最长有效括号
Thawte通配符SSL证书提供的类型有哪些
Recast of recastnavigation
Grain Mall (I)
I wrote a learning and practice tutorial for beginners!
随机推荐
MySQL常用增删改查操作(CRUD)
Interview summary of large factory Daquan II
Reptile elementary learning
Machine learning concept drift detection method (Apria)
Vscode modification indentation failed, indent four spaces as soon as it is saved
78岁华科教授冲击IPO,丰年资本有望斩获数十倍回报
DB-Engines 2022年7月数据库排行榜:Microsoft SQL Server 大涨,Oracle 大跌
Superscalar processor design yaoyongbin Chapter 7 register rename excerpt
I always thought that excel and PPT could only be used for making statements until I saw this set of templates (attached)
Initial experience of domestic database tidb: simple and easy to use, quick to start
[test development] software testing - Basics
78 year old professor Huake impacts the IPO, and Fengnian capital is expected to reap dozens of times the return
Is it safe to download the mobile version of Anxin securities and open an account online
You should know something about ci/cd
android使用SQLiteOpenHelper闪退
Is BigDecimal safe to calculate the amount? Look at these five pits~~
【211】go 处理excel的库的详细文档
超标量处理器设计 姚永斌 第5章 指令集体系 摘录
股价大跌、市值缩水,奈雪推出虚拟股票,深陷擦边球争议
Redis master-slave replication