数据结构和算法
数据结构和算法
全部文章
分类
读书笔记(1)
题解(70)
归档
标签
去牛客网
登录
/
注册
数据结构和算法的博客
关注微信公众号“数据结构和算法”,每日一题
TA的专栏
96篇文章
70人订阅
数据结构和算法
73篇文章
55670人学习
常见数据结构介绍
4篇文章
733人学习
【面试精华】各大厂算法面试真题
19篇文章
180人学习
全部文章
(共89篇)
【数据结构和算法】BFS,DFS,递归等多种实现方式,图文详解
1,BFS解决 之前讲373,数据结构-6,树的时候,提到过二叉树的广度优先搜索,就是一层一层的访问,像下面这样 二叉树的BFS代码如下 public static void treeBFS(TreeNode root) { //如果为空直接返回 if (root == null)...
DFS
递归
java
二叉树
BFS
2021-03-21
93
2365
【数据结构和算法】十几种排序算法,图文详解
1,快速排序 快速排序原理是首先要找到一个中枢,把小于中枢的值放到他前面,大于中枢的值放到他的右边,然后再以此方法对这两部分数据分别进行快速排序。先看一下代码 public int[] MySort(int[] arr) { quickSort(arr, 0, arr.len...
排序
java
2021-03-21
78
4906
【数据结构和算法】递归,BFS,DFS等3种实现方式
1,递归 这题最容易想到的就是递归,啥叫“递归”,也就是下面这张图 开个玩笑,我们画个图来看下 原理很简单,代码如下 public int maxDepth(TreeNode root) { return root==null? 0 : Math.max(maxDepth(ro...
DFS
递归
java
二叉树
BFS
2021-03-21
35
2557
【数据结构和算法】N皇后,回溯算法图文详解
之前在公众号写过和这题类似的的,有兴趣的也可以看下394,经典的八皇后问题和N皇后问题 1,4皇后问题,递归解决 我们来找规律,先看一下4皇后的问题 比如在下面的4*4的格子里,如果我们在其中一个格子里输入了皇后,那么在这一行这一列和这左右两边的对角线上都不能有皇后。 所以有一种方式就是我们一个个...
java
回溯算法
N皇后
2021-03-21
54
1750
【数据结构和算法】动态规划和贪心算法,图文详解
1,动态规划解决 定义dp[i][0]表示第i+1天交易完之后手里没有股票的最大利润,dp[i][1]表示第i+1天交易完之后手里持有股票的最大利润。 当天交易完之后手里没有股票可能有两种情况,一种是当天没有进行任何交易,又因为当天手里没有股票,所以当天没有股票的利润只能取前一天手里没有股票的利润...
java
贪心算法
动态规划
2021-03-21
40
2261
【数据结构和算法】两种方式解决
1,暴力破解法 就是使用两个for循环,这种效率很差 public int[] twoSum(int[] nums, int target) { int length = nums.length; for (int i = 0; i < leng...
java
2021-03-21
42
1874
【数据结构和算法】位运算和求和两种方式解决
1,位运算求解 题中的意思就是从数字[0,n]之间的n+1个数字少了一个,而其他的数字都存在。 如果我们把这个数组添加从0~n的n+1个元素,就变成了数组中只有一个数出现了一次,其他数字都出现了2次,让我们求这个只出现一次的数字。这题使用位运算是最容易解决的,关于位运算有下面几个规律 1^1=0; ...
java
位运算
2021-03-21
19
1058
【数据结构和算法】判断回文链表,图文详解
1,反转后半部分链表 这题是让判断链表是否是回文链表,所谓的回文链表就是以链表中间为中心点两边对称。我们常见的有判断一个字符串是否是回文字符串,这个比较简单,可以使用两个指针,一个最左边一个最右边,两个指针同时往中间靠,判断所指的字符是否相等。 但这题判断的是链表,因为这里是单向链表,只能从前往后...
java
链表
栈
2021-03-21
50
2175
【数据结构和算法】递归和非递归,以及公式计算等4种实现方式
1,递归的写法 这题我们可以参照之前分析的青蛙跳台阶问题,其实原理是完全一样的 我们来分析一下: 当n等于1的时候,只需要跳一次即可,只有一种跳法,记f(1)=1 当n等于2的时候,可以先跳一级再跳一级,或者直接跳二级,共有2种跳法,记f(2)=2 当n等于3的时候,他可以从一级台阶上跳两步上来,...
斐波那契数列
java
动态规划
2021-03-21
22
1380
【数据结构和算法】集合,双指针等3种解决方式
1,通过集合set解决 做这题最容易想到的一种解决方式就是先把第一个链表的节点全部存放到集合set中,然后遍历第二个链表的每一个节点,判断在集合set中是否存在,如果存在就直接返回这个存在的结点。如果遍历完了,在集合set中还没找到,说明他们没有相交,直接返回null即可,原理比较简单,直接看下代码...
链表
双指针
2021-03-19
9
942
首页
上一页
1
2
3
4
5
6
7
8
9
下一页
末页