数据结构和算法
数据结构和算法
全部文章
分类
读书笔记(1)
题解(70)
归档
标签
去牛客网
登录
/
注册
数据结构和算法的博客
关注微信公众号“数据结构和算法”,每日一题
TA的专栏
76篇文章
67人订阅
数据结构和算法
73篇文章
54597人学习
常见数据结构介绍
3篇文章
606人学习
全部文章
(共59篇)
【数据结构和算法】动态规划和递归两种方式解决
来自专栏
1,动态规划求解 这题求的是从左上角到右下角,路径上的数字和最小,并且每次只能向下或向右移动。所以上面很容易想到动态规划求解。我们可以使用一个二维数组dp,dp[i][j]表示的是从左上角到坐标(i,j)的最小路径和。那么走到坐标(i,j)的位置只有这两种可能,要么从上面(i-1,j)走下来,要么从...
递归
java
动态规划
2021-04-02
19
1541
【数据结构和算法】三种解决方式
来自专栏
往左边逼近 public int search(int[] nums, int target) { //边界条件判断 if (nums == null || nums.length == 0) return -1; in...
java
二分法
2021-03-31
61
2505
【数据结构和算法】4种实现方式,排序,最大堆,TreeMap,快排
来自专栏
1,先排序 这种实现方式比较简单,无论使用哪种排序方式都可以,排序之后在取前k个元素即可,代码如下 public ArrayList<Integer> GetLeastNumbers_Solution(int[] input, int k) { ArrayList...
排序
java
堆
二分法
2021-03-31
32
2348
【数据结构和算法】BFS,DFS,递归等多种实现方式,图文详解
来自专栏
1,BFS解决 之前讲373,数据结构-6,树的时候,提到过二叉树的广度优先搜索,就是一层一层的访问,像下面这样二叉树的BFS代码如下 public static void treeBFS(TreeNode root) { //如果为空直接返回 if (root == null) ...
DFS
递归
java
二叉树
BFS
2021-03-21
93
2336
【数据结构和算法】十几种排序算法,图文详解
来自专栏
1,快速排序 快速排序原理是首先要找到一个中枢,把小于中枢的值放到他前面,大于中枢的值放到他的右边,然后再以此方法对这两部分数据分别进行快速排序。先看一下代码 public int[] MySort(int[] arr) { quickSort(arr, 0, arr.len...
排序
java
2021-03-21
77
4886
【数据结构和算法】递归,BFS,DFS等3种实现方式
来自专栏
1,递归 这题最容易想到的就是递归,啥叫“递归”,也就是下面这张图开个玩笑,我们画个图来看下原理很简单,代码如下 public int maxDepth(TreeNode root) { return root==null? 0 : Math.max(maxDepth(root.l...
DFS
递归
java
二叉树
BFS
2021-03-21
35
2542
【数据结构和算法】N皇后,回溯算法图文详解
来自专栏
之前在公众号写过和这题类似的的,有兴趣的也可以看下394,经典的八皇后问题和N皇后问题 1,4皇后问题,递归解决 我们来找规律,先看一下4皇后的问题 比如在下面的4*4的格子里,如果我们在其中一个格子里输入了皇后,那么在这一行这一列和这左右两边的对角线上都不能有皇后。 所以有一种方式就是我们一个个去...
java
回溯算法
N皇后
2021-03-21
53
1684
【数据结构和算法】动态规划和贪心算法,图文详解
来自专栏
1,动态规划解决 定义dp[i][0]表示第i+1天交易完之后手里没有股票的最大利润,dp[i][1]表示第i+1天交易完之后手里持有股票的最大利润。 当天交易完之后手里没有股票可能有两种情况,一种是当天没有进行任何交易,又因为当天手里没有股票,所以当天没有股票的利润只能取前一天手里没有股票的利...
java
贪心算法
动态规划
2021-03-21
40
2234
【数据结构和算法】两种方式解决
来自专栏
1,暴力破解法 就是使用两个for循环,这种效率很差 public int[] twoSum(int[] nums, int target) { int length = nums.length; for (int i = 0; i < length -...
java
2021-03-21
42
1853
【数据结构和算法】位运算和求和两种方式解决
来自专栏
1,位运算求解 题中的意思就是从数字[0,n]之间的n+1个数字少了一个,而其他的数字都存在。 如果我们把这个数组添加从0~n的n+1个元素,就变成了数组中只有一个数出现了一次,其他数字都出现了2次,让我们求这个只出现一次的数字。这题使用位运算是最容易解决的,关于位运算有下面几个规律 1^1=0; ...
java
位运算
2021-03-21
19
1030
首页
上一页
1
2
3
4
5
6
下一页
末页