当前位置:网站首页>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
边栏推荐
- Clever use of curl command
- Imitation of numpy 2
- Self reflection of a small VC after two years of entrepreneurship
- Detailed explanation of the maturity classification of ITSS operation and maintenance capability | one article clarifies the ITSS certificate
- Ks007 realizes personal blog system based on JSP
- 中断的顶半部和底半部介绍以及实现方式(tasklet 和 工作队列)
- "In Vietnam, money is like lying on the street"
- 如何使用 wget 和 curl 下载文件
- The controversial line of energy replenishment: will fast charging lead to reunification?
- 【每日一题】871. 最低加油次数
猜你喜欢
超标量处理器设计 姚永斌 第6章 指令解码 摘录
Numpy 的仿制 2
估值900亿,超级芯片IPO来了
如何进行MDM的产品测试
股价大跌、市值缩水,奈雪推出虚拟股票,深陷擦边球争议
明星开店,退,退,退
Ks007 realizes personal blog system based on JSP
上市公司改名,科学还是玄学?
TCP两次挥手,你见过吗?那四次握手呢?
With the stock price plummeting and the market value shrinking, Naixue launched a virtual stock, which was deeply in dispute
随机推荐
正则表达式
Detectron2 installation method
ARTS_ twenty million two hundred and twenty thousand six hundred and twenty-eight
上市公司改名,科学还是玄学?
The block:usdd has strong growth momentum
"In Vietnam, money is like lying on the street"
华为云ModelArts的使用教程(附详细图解)
Ks007 realizes personal blog system based on JSP
MySQL常用增删改查操作(CRUD)
Mathematical analysis_ Notes_ Chapter 7: differential calculus of multivariate functions
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)
Open source PostgreSQL extension age for graph database was announced as the top-level project of Apache Software Foundation
Face_recognition人脸识别之考勤统计
提升复杂场景三维重建精度 | 基于PaddleSeg分割无人机遥感影像
【209】go语言的学习思想
被忽视的问题:测试环境配置管理
【Hot100】32. Longest valid bracket
怎么开户才是安全的,
Large scale service exception log retrieval
I always thought that excel and PPT could only be used for making statements until I saw this set of templates (attached)