2022年度GitHub最火的力扣算法刷题宝典,手把手教你如何刷力扣~

2023-05-16

前言

昨晚逛了逛GitHub,无意中看到一位P8大佬的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看到。

关于算法刷题的困惑和疑问也经常听朋友们提及,在面试和不少业务中经常问到,但算法就必须依靠牢固的基础和刷题量。算法根基不扎实,不仅难过面试,对于代码性能的提升、编程语言的驾驭也会比别人弱很多。

全部的面试题内容和参考答案都整理成文档了(在文末)
因此,现在算法基础不牢固的同学,都很难通过大厂的面试。但是只靠刷题去提升算法能力,进度太慢,而且还容易抓不住重点。有了这个笔记的总结,对校招和社招的算法刷题帮助之大不言而喻,果断收藏安利之。

Java算法

1、二分查找

又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。

public static int biSearch(int []array,int a){
 int lo=0;
 int hi=array.length-1;
 int mid;
 while(lo<=hi){
 mid=(lo+hi)/2;//中间位置
 if(array[mid]==a){
 return mid+1;
 }else if(array[mid]<a){ //向右查找
 lo=mid+1;
 }else{ //向左查找
 hi=mid-1;
 }
 }
 return -1;
 }

2、冒泡排序算法

(1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。

(2)这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1 个位置。

(3)N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成。

 public static void bubbleSort1(int [] a, int n){
 int i, j;
for(i=0; i<n; i++){//表示 n 次排序过程。
 for(j=1; j<n-i; j++){
 if(a[j-1] > a[j]){//前面的数字大于后面的数字就交换
 //交换 a[j-1]和 a[j]
 int temp;
 temp = a[j-1];
 a[j-1] = a[j];
 a[j]=temp;
 }
 }
 } }

3、插入排序算法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XsEBOvkk-1651310316847)(https://ask.qcloudimg.com/http-save/7948575/2d5ccdebc27c24c8dc8e63c41366b351.jpeg)]

public void sort(int arr[])
{
 for(int i =1; i<arr.length;i++)
 {
 //插入的数
 int insertVal = arr[i];
 //被插入的位置(准备和前一个数比较)
 int index = i-1;
 //如果插入的数比被插入的数小
 while(index>=0&&insertVal<arr[index])
 {
 //将把 arr[index] 向后移动
 arr[index+1]=arr[index];
 //让 index 向前移动
 index--;
 }
 //把插入的数放入合适位置
 arr[index+1]=insertVal;
 }
 }

4、快速排序算法

5、希尔排序算法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x43Idp27-1651310316848)(https://ask.qcloudimg.com/http-save/yehe-7948575/dd231ef3b8806609455e9605fbc1c3e8.png)]

6、归并排序算法

7、桶排序算法

8、基数排序算法

9、回溯算法

回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。

10、剪枝算法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KtRwWX5M-1651310316850)(https://ask.qcloudimg.com/http-save/yehe-7948575/bc212c3a0b8c85cff885348430592de8.png)]

11、最小生成树算法

加密算法

1、AES

高级加密标准为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QhJH27jY-1651310316850)(https://ask.qcloudimg.com/http-save/7948575/4ef7bde891545b29ea5cb1846733e6ca.jpe
在这里插入图片描述
g)]

2、RSA

RSA 加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dy2JkRoV-1651310316851)(https://ask.qcloudimg.com/http-save/7948575/bb6d81a30dd39247c59f86e592286dc3.jpeg)]

3、CRC

循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误…

4、MD5

MD5 常常作为文件的签名出现,我们在下载文件的时候,常常会看到文件页面上附带一个扩展名为.MD5 的文本或者一行字符,这行字符就是就是把整个文件当作原数据通过 MD5 计算后的值,我们下载文件后,可以用检查文件 MD5 信息的软件对下载到的文件在进行一次计算。两次结果…

力扣算法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pqGaNvG6-1651310316852)(https://ask.qcloudimg.com/http-save/7948575/522209af72c40ed4e2da1f7bb8d969a4.jpeg)]

1、反转链表=

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1dsJileU-1651310316852)(https://ask.qcloudimg.com/http-save/7948575/6c1b3c9e19db7e5be892a79fd9e04b15.jpeg)]

2、统计N以内的素数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j0Qhc4yZ-1651310316853)(https://ask.qcloudimg.com/http-save/7948575/0f7e7a4c2d4a8191fb8a8edb3843aba4.jpeg)]

3、寻找数组的中心索引

数组中某一个下标,左右两边的元素之后相等,该下标即为中心索引

**思路:**先统计出整个数组的总和,然后从第一个元素开始叠加,总和递减当前元素,叠加递增当前元素,知道两个值相等

public static int pivotIndex(int[] nums) {
	int sum1 = Arrays.stream(nums).sum();
	int sum2 = 0;
	for (int i = 0; i<nums.length; i++){
		sum2 += nums[i];
		if(sum1 == sum2){
			return i;
		}
		sum1 = sum1 - nums[i];
	}
	return -1;
}

4、删除排序数组中的重复项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6y2AJRTo-1651310316853)(https://ask.qcloudimg.com/http-save/yehe-7948575/93351415efb5adf5ddbe4654369fc681.png)]

public int removeDuplicates(int[] nums) {
	if (nums.length == 0) return 0;
	int i = 0;
	for (int j = 1; j < nums.length; j++) {
		if (nums[j] != nums[i]) {
			i++;
			nums[i] = nums[j];
		}
	}
	return i + 1;
}

5、x的平方根

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-71fjGTUy-1651310316854)(https://ask.qcloudimg.com/http-save/yehe-7948575/a8d679cd4375ebb42bb7a4e28cff9e48.png)]

6、三个数的最大乘积

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2yqtza56-1651310316855)(https://ask.qcloudimg.com/http-save/yehe-7948575/b4d897d03dff04f5d30d8f3dea022132.png)]

7、两数之和

8、斐波那契数列

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XpTSnx6a-1651310316858)(https://ask.qcloudimg.com/http-save/yehe-7948575/9ce081c6298c49d60740df4c3546486b.png)]

9、环形链表

10、排列硬币

11、省份数量

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AXhE6dkS-1651310316860)(https://ask.qcloudimg.com/http-save/yehe-7948575/939ec5b9af7e08dfb4c59404777f40d2.png)]

12、预测赢家

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ky4CWTMc-1651310316860)(https://ask.qcloudimg.com/http-save/yehe-7948575/95a2d17b82694be9a02ef7dacf20d980.png)]

13、香槟塔

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EwJVcyiG-1651310316861)(https://ask.qcloudimg.com/http-save/yehe-7948575/f0ae4d14396ec7222c67ae463707fc68.png)]

14、井字游戏

15、打家劫舍

16、优势洗牌

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cpy2ABdj-1651310316862)(https://ask.qcloudimg.com/http-save/yehe-7948575/08764373e0d117caf0b1d241882a0b21.png)]

总结

很多算法题其实本身并不难,难的是细节逻辑方面,如果这些细节方面没有笔记或者有人讲解的话,自己可能要好几天都不一定想的明白,一但被别人点破,只要几分钟可能就能想明白,所以说收集学习笔记和结伴学习都是非常不错学习方式,可以很高的提升自己的学习效率,完整的算法笔记以为为大家安利好了。


👇🏻 添加 博主 获取更多资料👇🏻

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022年度GitHub最火的力扣算法刷题宝典,手把手教你如何刷力扣~ 的相关文章

随机推荐

  • gl的矩阵模式及其相应的矩阵变换函数

    以Android的GL10为例 xff0c 说明一下矩阵模式及其相应的矩阵变换函数 矩阵模式一共分为两种 xff1a gl glMatrixMode GL10 GL MODELVIEW 和 gl glMatrixMode GL10 GL P
  • 对md5sum程序的修改

    linux下自带md5sum工具 xff0c 可以对文件计算md5值 xff0c 但这个命令行工具不能直接对字符串求md5 xff0c 而对一个字符串求md5是一个比较有用的需求 xff0c 比如计算签名 于是对源码md5sum c修改了一
  • 物联网通信协议——比较-MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP

    原文链接 xff1a https blog csdn net lightrain0 article details 84343857 AMQP amp MQTT amp DDS https www youtube com watch v 6
  • 门电路逻辑符号大全(三态门,同或门,异或门,或非门,与或非门, 传输门,全加器,半加器等)

    最近要研究一下滤波器设计的无乘法器的实现 xff0c 所以要学习一下加法器的电路 xff0c 丢了一段时间 xff0c 忘的差不多了 xff0c 这里罗列一下常用的门电路的符号 这是一个1位全加器的数字电路组成 xff1a 以下两幅图可以复
  • 实函数傅里叶变换的奇偶虚实特性

    本文内容来源于他人的PPT xff0c 经本人整理而成 xff0c 算是对数字信号处理的复习吧 而实偶函数的傅里叶变换仍然是一个实偶函数的性质正是DCT的基础 xfeff xfeff
  • 多面体及欧拉公式及广义欧拉公式

    像正方体 xff0c 四棱锥这样的平面多面体属于简单多面体 xff0c 它们可以与球拓扑同构 xff0c 即可以连续拓扑变换成一个球 它们满足欧拉公式 xff1a v e 43 f 61 2 其中v是顶点 xff08 vertex xff0
  • mysql在表的某一位置增加一列的命令

    如果想在一个已经建好的表中添加一列 xff0c 可以用诸如 xff1a alter table t1 add column addr varchar 20 not null 这条语句会向已有的表t1中加入一列addr xff0c 这一列在表
  • tar命令中的-C作用

    tar xzvf abc tar gz C tmp 上面的命令将abc tar gz这个压缩包解压到当前目录下的tmp目录下 xff0c 而不是当前目录下 xff0c 这就是 C选项的作用
  • Java多线程

    一 基础概念 1 CPU核心数和线程数 多核心指的是单芯片多处理器 xff0c 将多个CPU集成到同一个芯片内 xff0c 不同的CPU可以单独的运行程序 目前主流的CPU有四核 六核 八核 增加核心数目的是为了增加线程数 xff0c 一般
  • ros(23):接收rviz中的2D Nav Goal、2D Pose Estimate消息

    1 rviz 教程 1 1 2D Nav Goal 2D Nav Goal Keyboard shortcut g This tool lets you set a goal sent on the 34 goal 34 ROS topic
  • RealSense SR300 坑4米 获取相机参数

    硬件 相机的原理我了解的也不甚多 xff0c 看到一篇讲的很好的文章 xff0c 就在这里引用了 SR300设备的红外线发射器 xff08 IR Laser Projector xff09 发射的 结构光 xff0c 经物体反射后会被红外线
  • 算法的分类

    算法有多种分类方式 xff0c 可以根据实现方式分类 xff0c 也可以根据设计方法分类 xff0c 还可以根据应用领域进行分类 不同的分类方式有不同的特点 按照实现方式分类 xff0c 可以将算法分为递归算法 迭代算法 逻辑算法 串行算法
  • Eclipse搭建stm32+jlink开发环境全攻略(进阶篇二)

    Eclipse搭建stm32 43 jlink开发环境全攻略 进阶篇 二 我们设计程序往往会遇到这样的一个需求 xff0c 那就是我们的程序起始位置需要重新定位 xff0c 并不是默认的0x08000000 xff0c 这种情况往往出现在有
  • 不要在小公司做底层软件开发

    在这里makekam对底层软件的理解就是指驱动开发 xff0c 代码移植等工作 其中也包括底层的算法 在小公司做软件不要做底层软件开发 xff0c 犹如在公司做硬件开发不要只是焊接电路板 小公司处于产业链的最末端 xff0c 没有自己的核心
  • 多旋翼飞控篇新手课堂教程(共九集)

    多旋翼飞控篇新手课堂第一课 xff0c 将你的NAZA M真正升级成NAZA V2 http www mxkong com thread 134 1 1 html 出处 模型控MxKong 多旋翼飞控篇新手课堂第二课 xff1a NAZA远
  • Java基础final详解

    final中文意思 最后的 最终的 final 可以修饰类 属性 方法和局部变量 1 当不希望类被继承时 可以用final修饰 final class A 不可被继承 2 当不希望父类的某个方法被子类覆盖 重写 override 时 可以用
  • socket编程总结

    socket编程总结 主机字节序和网络字节序 字节序分为大端字节序 xff08 big endian xff09 和小端字节序 xff08 little endian xff09 大端字节序 xff1a 一个整数的高位存在内存的底地址 xf
  • c++中的常见问题

    CSP J终于考完了啊 xff01 坐在考场 xff0c 是一种煎熬 xff1a 为什么那么多不会啊 xff01 xff01 xff01 这里 xff0c 总结一下在c 43 43 中的那些常见问题 xff08 作者亲身经历 xff09 x
  • 大陆毫米波雷达ARS408-21xx(内附毫米波雷达使用说明书)使用记录:第一期

    文章目录 前言一 硬件链接二 代码如何使用三 大陆毫米波雷达ARS408 21XX解析代码说明总结 前言 从我个人的学习成长历程来看 xff0c 从0到1确实很难 我个人在对这款毫米波雷达的学习的过程中也比较痛苦 xff0c 资料缺乏 xf
  • 2022年度GitHub最火的力扣算法刷题宝典,手把手教你如何刷力扣~

    前言 昨晚逛了逛GitHub xff0c 无意中看到一位P8大佬的算法刷题笔记 xff0c 感觉发现了宝藏 xff01 有些小伙伴可能已经发现了 xff0c 但咱这里还是忍不住安利一波 xff0c 怕有些小伙伴没有看到 关于算法刷题的困惑和