Leetcode刷题
文章平均质量分 62
wu546547
一瓶可乐一根烟,一个bug调一天。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
回溯算法难题-N皇后
第二步是找树的宽度,这里用for col in range(n)非递归遍历,第三步是找树的深度,树的深度是递归部分,这里用backtracking(row+1),最后就是细节处理了。我们需要实现构造出一个n*n的二维数组表示棋盘,且初始值都是’.',具体看代码chessboard。首先,要解决这个问题,就得构造出它的搜索n叉树,皇后的位置从左上角,逐行遍历搜索,每次下棋前都要判断一下是否冲突,所以需要一个额外的函数判断冲突。回溯三步:第一步、找到返回条件,这里是树的深度,也就是皇后的行row。原创 2024-03-17 19:09:50 · 501 阅读 · 1 评论 -
回溯算法的套路
它用的是递归,靠递归层层递进搜索深度,而我们不需要关心它到底有多少层嵌套,也就是不需要知道要嵌套多少层for循环或者别的操作,只需要知道边界值,也就是返回条件,确保递归遇到边界时能正确返回就可以了。首先,我们看到这道题就会想到,用遍历的思想做,遍历所有1到n,长度为k的组合,以示例1为例,1-4长度为k=2,的那么写两个嵌套的for循环就可以了,下面是伪代码。回溯算法本质上是一种遍历算法,不断的遍历所有的结果,直到遇到边界值返回,再继续下一个,这就有点像一个二叉树,n叉树,不断的搜索,直到遇到叶子节点。原创 2024-03-17 14:49:52 · 546 阅读 · 1 评论 -
走迷宫——动态规划
从N X N的方格迷宫中,左上角走到右下角,设计一个boolean数组记录迷宫格子,如果为true就可以走,如果为false就不能走,每一步只能忘右或者往下走,利用动态规划解决,行为row,列为col,所以每个状态dp(row,col)=dp(row+1,col)+dp(row,col+1)。java实现的代码如下:public class Solution { public st...原创 2019-11-05 16:47:18 · 1101 阅读 · 0 评论 -
二分查找算法应用-实现求平方根函数
使用二分查找算法,尽可能的逼近求解平方根。算法的思路很简单:设置三个标识:left=0,right=x(x为输进去的被开方数)mid=(left+right)/2,然后用mid*mid-x的绝对值去和一个很小的小数作比较,当绝对值小于它时我们就当它们相等了,否则否则按照二分法移动三个标识,大于就把right移动到mid处,mid移动到新的left与right中间,小于就把left移动到mi...原创 2019-10-29 00:34:26 · 776 阅读 · 0 评论
分享