自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 广度优先搜索遍历(BFS)在二维数组上的应用例题讲解

广度优先搜索遍历又名BFS,属于盲目搜寻法,是图的搜索算法之一,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。下面列出几道经典例题,来带领大家一同求解。(1)给定一个由 0 和 1 组成的矩阵 mat,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。两个相邻元素间的距离为 1 。本题意思是求解数组中每个数到数字0的距离,0自己本身的距离为0,且距离只考虑上下左右四个方向,不..

2021-09-20 20:30:59 3028

原创 当函数引用时,函数可用作左值

函数的返回类型决定函数调用是否是左值,当调用一个返回引用的函数得到左值,其他返回类型得到右值。我们能为返回类型是非常量引用的函数的结果赋值:char &get_val ( string &str, int ix ){ return str[ix];}int main(){ string s ( "a value" ); get_val ( s, 0 ) = 'A'; return 0;}图中代码,函数使用引用类型...

2021-09-18 10:35:41 1564

原创 二分查找万能模板

相信大家在各处都看到了很多关于二分查找的模板,我在阅读了众多二分查找的模板后,发现了一个最好理解也是最好用的模板,原创来自于b站的五点七边,如果想要进一步了解的话可以去b站看视频,我这里就简单阐述一下思路以及举几道例题分析。模板思路:我们可以将需要进行二分查找的数组看成一片领域,然后左右两个指针看做成两头老虎,他们要根据所给的条件不断分割这片领域,直到最后这个领域正好被分成两头老虎各自的领域。最后退出循环的时候,左老虎在自己领域的最右边,右老虎在自己领域的最左边,且它们俩彼此相邻。 ...

2021-09-08 21:19:36 578

原创 二分查找法相关例题讲解

相信大家在刷题过程中经常会遇见使用二分查找法处理问题的时候,二分查找分本身的思想并不难,相信大家也都能掌握,但是对于循环退出的条件,以及边界的处理上可能会存在些许的疑问,我通过leetcode上面的几道经典的二分查找法例题来帮助大家巩固这方面的知识。举具体的例题之前,先和大家分享下二分查找的一些细节。1、写之前先确定好左右边界的闭合情况,其实无论是左闭右开或者左闭右闭都是可以的,当为左闭右开时,数组的长度是[0,size)。当为左闭右闭时,数组的长度是[0,size-1)。其中的size是数组元素的

2021-08-25 17:24:33 1159

原创 遍历二维数组的有关边界问题

分析一道有关于二维数组的遍历题型及如何处理边界问题。输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。我们举例分析下题目的意思,下面是个4*4的二维数组:根据题意我们遍历这个4*4的二维数组的顺序应该为1-2-3-4-8-12-16-15-14-13-9-5-6-7-11-10的这个顺序,他的顺序依次是从左向右,从上向下,从右向左,从下到上的依次循环。但是遍历到边界的时候怎样停止当前遍历方向并且转换方向呢?我们发现可以设置遍历的边界条件,到达了边界即转换遍历方向,如题有.

2021-08-19 21:23:25 1159 2

原创 关于位运算的几种常见题型分析

有不少人对位运算感到陌生,一是因为我们不习惯用二进制的形式来进行计算,二是我们遇到的题目较少,并且很不熟练。可能我们遇到数组、链表等常见数据结构类的问题时做起来很顺利,哪怕是中等或者困难的题目也能完成,但是遇到关于位运算的简单题目却无从下手,下面我将分析几道leetcode上面的几道简单且经典的位运算题目,供大家做参考。在分析题目之前,我先带大家熟悉下位运算的几种常见符号。&:按位与运算。同1为1,否则为0。例:0&0=0;0&1=0;1&0=0;1&1=

2021-08-16 17:26:36 564 4

原创 关于“组合”“全排列”等问题的回溯解法

本篇文章是关于leetcode的三道递归/回溯问题的探究,分别是“组合”“全排列”“字母大小写全排列”三个问题。(1)组合给定两个整数n和k,返回范围[1, n]中所有可能的k个数的组合可以按任何顺序返回答案。看到本题,大多数人想到的是先使用暴力for循环来遍历这个数组,但是发现当所给的n和k足够大时,就会嵌套太多的for循环,不利于我们的解题。此时,遇到嵌套层数过多的情况,我们要选择回溯法递归来解决此类问题,我们可以将回溯法解决问题抽象为树类的树形结构来解决,我们将此类为题...

2021-08-14 23:03:59 306

原创 反转链表及合并两个有序链表的递归实现方法

关于单链表的两个常规问题的递归方法实现

2021-08-13 12:18:11 350 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除