当前位置:网站首页>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
边栏推荐
- Pytoch deep learning environment construction
- ISO27001 certification process and 2022 subsidy policy summary
- LD_LIBRARY_PATH 环境变量设置
- ARTS_ twenty million two hundred and twenty thousand six hundred and twenty-eight
- Superscalar processor design yaoyongbin Chapter 5 instruction set excerpt
- Blood spitting finishing nanny level series tutorial - play Fiddler bag grabbing tutorial (2) - first meet fiddler, let you have a rational understanding
- Stars open stores, return, return, return
- Implementation of shell script replacement function
- [cloud native] what is the "grid" of service grid?
- 创业两年,一家小VC的自我反思
猜你喜欢

庆贺!科蓝SUNDB与中创软件完成七大产品的兼容性适配
12 - explore the underlying principles of IOS | runtime [isa details, class structure, method cache | t]

如何提高开发质量

celebrate! Kelan sundb and Zhongchuang software complete the compatibility adaptation of seven products
![[cloud native] what is the](/img/00/0cb0f38bf3eb5dad02b3bc4ead36ba.jpg)
[cloud native] what is the "grid" of service grid?

输入的查询SQL语句,是如何执行的?

How to test MDM products

Load test practice of pingcode performance test

I wrote a learning and practice tutorial for beginners!

2022年全国CMMI认证补贴政策|昌旭咨询
随机推荐
怎么开户才是安全的,
Set the transparent hidden taskbar and full screen display of the form
谷粒商城(一)
[proteus simulation] printf debugging output example based on VSM serial port
Numpy 的仿制 2
About the pit of firewall opening 8848 when Nacos is started
[daily question] 871 Minimum refueling times
如何进行MDM的产品测试
TCP waves twice, have you seen it? What about four handshakes?
被忽视的问题:测试环境配置管理
Performance test of Gatling
Rainfall warning broadcast automatic data platform bwii broadcast warning monitor
数学分析_笔记_第7章:多元函数的微分学
【系统盘转回U盘】记录系统盘转回U盘的操作
Clever use of curl command
Easy to use map visualization
股价大跌、市值缩水,奈雪推出虚拟股票,深陷擦边球争议
Is it science or metaphysics to rename a listed company?
gatling 之性能测试
[system disk back to U disk] record the operation of system disk back to U disk