当前位置:网站首页>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
边栏推荐
- 估值900亿,超级芯片IPO来了
- Load test practice of pingcode performance test
- Blood spitting finishing nanny level series tutorial - play Fiddler bag grabbing tutorial (2) - first meet fiddler, let you have a rational understanding
- RecastNavigation 之 Recast
- 【211】go 处理excel的库的详细文档
- 能源行业的数字化“新”运维
- ARTS_ twenty million two hundred and twenty thousand six hundred and twenty-eight
- [daily question] 871 Minimum refueling times
- Talk about seven ways to realize asynchronous programming
- Self reflection of a small VC after two years of entrepreneurship
猜你喜欢
Just today, four experts from HSBC gathered to discuss the problems of bank core system transformation, migration and reconstruction
Open source PostgreSQL extension age for graph database was announced as the top-level project of Apache Software Foundation
使用3DMAX制作一枚手雷
Load test practice of pingcode performance test
Five thousand words to clarify team self-organization construction | Liga wonderful talk
2022 national CMMI certification subsidy policy | Changxu consulting
[test development] software testing - Basics
如何提高开发质量
同事悄悄告诉我,飞书通知还能这样玩
超标量处理器设计 姚永斌 第7章 寄存器重命名 摘录
随机推荐
谷粒商城(一)
Vscode modification indentation failed, indent four spaces as soon as it is saved
无心剑中译伊丽莎白·毕肖普《一门技艺》
mysql5.7安装教程图文详解
2022 national CMMI certification subsidy policy | Changxu consulting
2022年全国CMMI认证补贴政策|昌旭咨询
[proteus simulation] printf debugging output example based on VSM serial port
Is BigDecimal safe to calculate the amount? Look at these five pits~~
如何进行MDM的产品测试
Is it science or metaphysics to rename a listed company?
Russia arena data releases PostgreSQL based products
庆贺!科蓝SUNDB与中创软件完成七大产品的兼容性适配
怎么开户才是安全的,
ISO27001认证办理流程及2022年补贴政策汇总
使用3DMAX制作一枚手雷
【系统分析师之路】第七章 复盘系统设计(结构化开发方法)
High school physics: force, object and balance
With the stock price plummeting and the market value shrinking, Naixue launched a virtual stock, which was deeply in dispute
华为云ModelArts的使用教程(附详细图解)
Tutorial on the use of Huawei cloud modelarts (with detailed illustrations)