数据结构与算法
y4ung
这个作者很懒,什么都没留下…
展开
-
Python广度优先搜索得到两点间最短路径
前言之前一直写不出来,这周周日花了一下午终于弄懂了= =|| , 顺便放博客里,方便以后忘记了再看看 要实现的是输入一张 图,起点,终点,输出起点和终点之间的最短路径思路广度优先搜索是以层为顺序,将某一层上的所有节点都搜索到了之后才向下一层搜索; 比如下图: 从0结点开始搜索的话,顺序就是 0, 1,2,4, 3,这里用下划线表示每一层搜索得到的结点;因此,可以用一个队列来保存已经访问过的原创 2017-12-04 18:19:51 · 13306 阅读 · 15 评论 -
LeetCode 371. 两整数之和
题目描述 不使用运算符 + 和-,计算两整数a、b之和。示例: 若 a = 1 ,b = 2,返回 3。思路这里以a=3, b=2为例子,通过位运算实现两数之和可以通过异或^得到每一位上、没有加上进位的和可以通过&,再左移一位(第零位的进位输入为0),得到每一位上的进位当没有进位的时候,sum即为结果代码int getSum(i...原创 2018-08-25 17:09:37 · 4483 阅读 · 0 评论 -
LeetCode 29. 两数相除
题目描述https://leetcode-cn.com/problems/divide-two-integers/description/给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。示例 1: 输入: dividend = 10, div...原创 2018-08-25 16:01:31 · 4071 阅读 · 0 评论 -
LeetCode 16. 最接近的三数之和
题目描述题目传送门给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2)....原创 2018-08-17 20:47:13 · 4046 阅读 · 0 评论 -
LeetCode 15. 三数之和
题目描述15. 三数之和思路思路1比较容易想到的就是,求三数之和等于0,可以等价于求两个数的和,然后看这个和的相反数是否在nums里面。 但是 T_T这样的话复杂度太高了,会超时,捂脸,最后三个case,怎么改都超时…… bool find(vector<int> nums, int nums_sz, int target, int m, i...原创 2018-08-17 17:05:42 · 5469 阅读 · 0 评论 -
LeetCode 11. 盛最多水的容器
题目描述思路理解 木桶效应:一只木桶能盛多少水,并不取决于最长的那块木板,而是取决于最短的那块木板 显然,这道题也是如此: 我们需要选择两块相对长度较长的木板(纵坐标的大小):height[i], height[j],同时两块木板的间隔也要足够大j-i,则此时能装的水为:min(height[i], height[j]) * (j - i)...原创 2018-08-16 18:41:04 · 4113 阅读 · 0 评论 -
LeetCode 6. Z字形变换
题目描述思路把整个问题拆解为: 存储-取 的两个过程;存储通过观察我发现的是,当numRows为3时,两列之间的数字的数目为1;当numRows为4时,两列之间的数字的数目为2,以此类推。那么,可不可以将每一列都存起来(col),两列之间的数字也存起来(gap),最后要输出时再通过遍历的方式拼接出结果呢?以题目中给的字符串PAYPALISHIRING为例子,将...原创 2018-08-16 07:57:56 · 4188 阅读 · 0 评论 -
LeetCode 5. 最长回文子串
题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba”也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb”思路这里以&quot;babad&quot;为例子。从长的往短的,遍历出各个子串:babad baba ba...原创 2018-08-14 23:38:39 · 3957 阅读 · 0 评论 -
LeetCode 3. 无重复字符的最长子串
题目描述: 给定一个字符串,找出不含有重复字符的最长子串的长度。 示例: 给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。 给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。 给定 "pwwkew" ,最长子串是 "wke" ,长度是3。 请注意答案必须是一个子串,”pwke” 是 子序列 而不是子串原创 2018-08-14 10:10:53 · 4625 阅读 · 0 评论 -
Floyd判圈算法(龟兔赛跑算法)记录
前言这是在做 142. 环形链表 II 时看到的算法,在这里记录,方便以后复习和学习; Floyd判圈算法(Floyd Cycle Detection Algorithm),又称龟兔赛跑算法(Tortoise and Hare Algorithm),是一个可以在有限状态机、迭代函数或者链表上判断是否存在环,以及判断环的起点与长度的算法。 – 百度百科作用:判定链表中是否有环存在以...原创 2018-05-15 23:43:43 · 7011 阅读 · 1 评论 -
LeetCode 169. 求众数
题目描述https://leetcode-cn.com/problems/majority-element/description/ 给定一个大小为 nnn 的数组,找到其中的众数。众数是指在数组中出现次数大于 n2n2 \frac{n}{2} 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3示例...原创 2018-09-09 09:47:25 · 4406 阅读 · 0 评论