当前位置:网站首页>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
边栏推荐
- 【系统分析师之路】第七章 复盘系统设计(结构化开发方法)
- Blue bridge: sympodial plant
- [daily question] 556 Next bigger element III
- MySQL common add, delete, modify and query operations (crud)
- Open source PostgreSQL extension age for graph database was announced as the top-level project of Apache Software Foundation
- ARTS_ twenty million two hundred and twenty thousand six hundred and twenty-eight
- TCP两次挥手,你见过吗?那四次握手呢?
- 通过事件绑定实现动画效果
- 【Hot100】31. Next spread
- Pytorch深度学习之环境搭建
猜你喜欢

Five thousand words to clarify team self-organization construction | Liga wonderful talk

DB-Engines 2022年7月数据库排行榜:Microsoft SQL Server 大涨,Oracle 大跌

超标量处理器设计 姚永斌 第7章 寄存器重命名 摘录

People in the workplace with a miserable expression

创业两年,一家小VC的自我反思

Imitation of numpy 2

MySQL常用增删改查操作(CRUD)

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

Tutorial on the use of Huawei cloud modelarts (with detailed illustrations)

超标量处理器设计 姚永斌 第5章 指令集体系 摘录
随机推荐
[proteus simulation] printf debugging output example based on VSM serial port
Easy to use map visualization
gatling 之性能测试
ISO27001 certification process and 2022 subsidy policy summary
Neglected problem: test environment configuration management
Is it science or metaphysics to rename a listed company?
[daily question] 556 Next bigger element III
Stars open stores, return, return, return
输入的查询SQL语句,是如何执行的?
【Hot100】32. 最长有效括号
Ks007 realizes personal blog system based on JSP
“在越南,钱就像躺在街上”
DB engines database ranking in July 2022: Microsoft SQL Server rose sharply, Oracle fell sharply
机器学习概念漂移检测方法(Aporia)
[system disk back to U disk] record the operation of system disk back to U disk
MVC mode and three-tier architecture
About the pit of firewall opening 8848 when Nacos is started
LD_LIBRARY_PATH 环境变量设置
被忽视的问题:测试环境配置管理
【210】PHP 定界符的用法