
算法
文章平均质量分 91
一个非常帅气的骚包
正在努力的小南同志
展开
-
深度优先及广度优先详解——java
以具体的例子来距离,假设我们现在有如下一个图:我们要遍历上述这个无向图,就需要用到深度优先和广度优先遍历了,图的邻接矩阵为:[0, 1, 1, 0, 0][1, 0, 1, 1, 1][1, 1, 0, 0, 0][0, 1, 0, 0, 0][0, 1, 0, 0, 0]提一嘴邻接矩阵的意思吧,就是说 A到B是可达的,也就是1,A到C也是1,A到D并没有路线,所以A到D 是0,也...原创 2020-05-02 15:30:22 · 817 阅读 · 0 评论 -
堆排序——Java与Go实现
概念分析堆排序是使用堆这种数据结构进行排序的方法。(好像是废话)思路分析首先,我们将待排序的数组看作一个完全二叉树将此二叉树转成大顶堆或者小顶堆将堆顶元素与堆的最后一个元素互换,之后丢弃最后一个元素重复第二步与第三步,知道堆只剩一个堆顶具体解析什么是完全二叉树?对于一个深度为k,有n个节点的二叉树,其所有的结点与深度为k的满二叉树对应的编号一样,则称之为完全二叉树。数组如...原创 2020-04-26 12:07:32 · 256 阅读 · 0 评论 -
力扣3.—— 无重复字符的最长子串
1. 题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是...原创 2020-04-13 14:37:21 · 128 阅读 · 0 评论 -
Go、java实现八皇后问题
题目描述八皇后问题,一个古老而著名的问题,是回溯算法的典型案例。该问题由国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有 76 种方案。1854 年在柏林的象棋杂志上不同的作者发表了 40 种不同的解,后来有人用图论的方法解出 92 种结果。计算机发明后,有多...原创 2020-03-27 18:19:19 · 267 阅读 · 0 评论 -
遍历对角线——力扣498
题目描述给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]解释:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems...原创 2020-03-26 11:28:45 · 326 阅读 · 0 评论 -
java递归实现迷宫出口问题
1. 题目描述给定一个m*n的迷宫,随机给出障碍物,使得小球从起点可以走到出口2. 迷宫设计这个视自己喜好设定,障碍物也随便设点,使用二维数组模拟迷宫,1即为墙壁与障碍物3. 思路分析使用递归来模拟小球运动,假设小球从(1,1)开始,到(n-1,m-1)即为找到出口。我们规定 2 为可以找到下一条路线的点,3 为四处无法行走的点,未走过的点为0.行进方向自行规定,此处我使用顺...原创 2020-03-25 23:21:07 · 585 阅读 · 0 评论 -
中缀转后缀表达式——java(附四则运算)
1. 后缀表达式后缀表达式,即为逆波兰表达式,其运算方法为从左到右扫描表达式,当遇到符号时,取该符号前两位数,使用前一个数运算后一个数,将结果放入刚才两个数的位置,运算的两个数以及符号便去掉。由此得知,使用栈运算会很方便,下面会有完整的计算一个四则运算表达式的代码2. 思路分析1.将字符串转化为list,目的是方便操作2.简历一个符号栈与结果队列,符号栈用于存储遍历得到的符号,队列利用其先...原创 2020-03-24 23:21:52 · 266 阅读 · 0 评论 -
逆波兰表达式求值——力扣题库
1. 题目描述根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: [“2”, “1”, “+”, “3”, “*”]输出: 9解释: ((2 + 1) * 3) = 9...原创 2020-03-23 22:07:16 · 269 阅读 · 0 评论