👉👉👉👉LeetCode刷题营👈👈👈👈
欢迎订阅本专栏,说在前面💖
今天给大家带来leetcode相关专栏习题的讲解!
博主为了本系列专栏,做了很多准备,争取图文并茂,让大家看明白!希望大家不要吝啬订阅,与关注,多多评论哦!!💖💖💖💖💖💖💖
一、前言
💪💪💪💪那么这里博主先安利一下其他一些干货满满的专栏啦!💪💪💪💪
玩转Linux操作系统+系统编程+网络编程,快速掌握数据结构宝藏文章,点击下方蓝字即可跳转:
🔝🔝🔝🔝🔝玩转Linux操作系统+系统编程+网络编程🔝🔝🔝🔝🔝
CCF相关真题,点击下方蓝字即可跳转:
🔝🔝🔝🔝🔝 CCF真题🔝🔝🔝🔝🔝
纵横数据结构与算法,点击下方蓝字跳转:
🔝🔝🔝🔝🔝数据结构与算法🔝🔝🔝🔝🔝
二 、正文
1.消失的数字
方法一: 异或特性(推荐)
对于一个数字x=0,它与任何数字异或都是任何数字。
x=a,与本身异或都等于本身。
所以当它与0~n的数组中的数字分别异或后,再去与0 ~ n(缺失一个)的数组在异或,其他数字都异或了两遍(相同数字异或是0),只有缺失的数字异或了一遍,最终x就是那个数字.
例如: 0 1 2 4 5 缺失了3
用x去执行上述逻辑,那可以写成 0 ^ 0 ^ 1^ 2^ 4^ 5 ^0 ^1 ^2 ^3 ^4 ^ 5 相同数字为0,那就恒等于
0 ^ 0 (0)^ 0(1) ^ 0(2) ^ 3 ^ 0(4) ^ 0(5)最后便是0^3 =3.于是便可以找出消失的数字!
2.原地移除元素
这里采用的是类似于双指针的办法,如果src不等于val的话,我们就把他赋值给dst,然后二者分别++;最后返回dst的值就可以了。
方法二
这种方法相对麻烦,但是更加的直观。对于循环的掌握要求比较高。
3.合并两个有序数组
类似于归并排序,三个指针,谁大谁往end放! 尤其注意end2如果不小于0,那说明没排完,直接把剩下的往一号数组插就完了
三、 结尾💖
🌹🌹🌹🌹🌹🌹🌹 感谢大家的点赞关注,希望大家多多评论!!!🌹🌹🌹🌹🌹🌹🌹