刷题
文章平均质量分 86
雨璇小太阳
北航研究生,自然语言处理方向
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
五大算法总结
1) 贪婪算法 贪婪算法可以获取到问题的局部最优解,不一定能获取到全局最优解,同时获取最优解的好坏要看贪婪策略的选择。特点就是简单,能获取到局部最优解。就像打狗棍法,同一套棍法,洪七公和鲁有脚的水平就差太多了,因此同样是贪婪算法,不同的贪婪策略会导致得到差异非常大的结果。 具体的详细解析请参见下面的文章:http://blog.youkuaiyun.com/changyuanchn/article/details/51417211 2) 动态规划算法 当最优化问题具有重复子问题和最优子结构的时候,就是动态规划..原创 2021-01-06 13:05:59 · 206 阅读 · 0 评论 -
数组相关算法题汇总
在属于数组考点系列的题目中,划分为四个常考问题:子数组问题、矩阵问题、O(n)类型问题和思维转换类型问题。 子数组问题:就是给定一个数组,围绕该数组的子数组列出诸多难题,等待我们来解答。 矩阵问题:给定一个矩阵(或者称为二维数组),围绕该矩阵列出不同方式遍历矩阵中元素等难题,等待我们来解答。 O(n)类型问题:O(n)是指时间复杂度为O(n),给定的题目题意一般很容易理解,其一般解法(俗称暴力解法,时间复杂度一般为O(n^2),甚至更高)也很简单,但是题目要求你的解法时间复杂度为O(n)。看到这些题目原创 2021-01-05 14:52:37 · 1722 阅读 · 0 评论 -
LeetCode -- 75.颜色分类
问题描述: 给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例: 输入: [2,0,2,1,1,0] 输出: [0,0,1,1,2,2] 思路分析: 这是一道“荷兰国旗”思想的典型问题,更详细的可以参考第一篇文章“快速排序” 代码解题: class Solution { p...原创 2020-09-29 13:59:25 · 176 阅读 · 0 评论 -
链表常考算法题
1.链表的倒数第K个结点 问题描述: 输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点,需要保证时间复杂度。 算法思路: 设置两个指针p1,p2,从头到尾开始出发,一个指针先出发k个节点,然后第二个指针再进行出发,当第一个指针到达链表的节点的时候,则第二个指针表示的位置就是链表的倒数第k个节点的位置。 代码如下:原创 2020-09-25 18:23:21 · 817 阅读 · 0 评论 -
LeetCode刷题--5. 最长回文子串
题目描述: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" ...原创 2020-09-22 20:38:32 · 276 阅读 · 0 评论 -
LeetCode刷题--225用队列实现栈&232用栈实现队列
一.用队列实现栈 1.题目描述 使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是push to back, peek/pop from front, size, 和is empty这些操作是合法的。 你所使用的语言也许不支持队列。你可以使用 list 或者 deque(双端队列)来模拟一个队列, 只要是标准的队列操作即可。 你可...原创 2020-09-21 09:48:24 · 172 阅读 · 0 评论 -
LeetCode刷题——3.无重复字符的最长子串
问题描述: 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为...原创 2019-12-31 15:57:24 · 123 阅读 · 0 评论 -
LeetCode刷题——2.两数之和
问题描述: 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> ...原创 2019-12-31 15:29:20 · 235 阅读 · 0 评论 -
LeetCode刷题——1.两数之和
从今天开始正式整理自己的博客文档,算作正式踏入软件行业的里程碑。每天坚持写3道算法题,并坚持更新学到的各类模型,持之以恒,在毕业之前定当有所收获。主要也是为了今后参加各种面试招聘,总结经验。 问题描述: 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组...原创 2019-12-31 14:57:35 · 165 阅读 · 0 评论 -
快速排序(经典&优化)
标题话不多说,直接上代码 经典快速排序 Class solution: def QuickSort(array, start, end): if start < end: index = Partition(array, start, end) QuickSort(array, start, index-1) QuickSort(...原创 2019-12-31 14:10:58 · 367 阅读 · 0 评论
分享