刷题
文章平均质量分 86
雨璇小太阳
北航研究生,自然语言处理方向
展开
-
五大算法总结
1) 贪婪算法贪婪算法可以获取到问题的局部最优解,不一定能获取到全局最优解,同时获取最优解的好坏要看贪婪策略的选择。特点就是简单,能获取到局部最优解。就像打狗棍法,同一套棍法,洪七公和鲁有脚的水平就差太多了,因此同样是贪婪算法,不同的贪婪策略会导致得到差异非常大的结果。具体的详细解析请参见下面的文章:http://blog.csdn.net/changyuanchn/article/details/514172112) 动态规划算法当最优化问题具有重复子问题和最优子结构的时候,就是动态规划..原创 2021-01-06 13:05:59 · 158 阅读 · 0 评论 -
数组相关算法题汇总
在属于数组考点系列的题目中,划分为四个常考问题:子数组问题、矩阵问题、O(n)类型问题和思维转换类型问题。子数组问题:就是给定一个数组,围绕该数组的子数组列出诸多难题,等待我们来解答。 矩阵问题:给定一个矩阵(或者称为二维数组),围绕该矩阵列出不同方式遍历矩阵中元素等难题,等待我们来解答。 O(n)类型问题:O(n)是指时间复杂度为O(n),给定的题目题意一般很容易理解,其一般解法(俗称暴力解法,时间复杂度一般为O(n^2),甚至更高)也很简单,但是题目要求你的解法时间复杂度为O(n)。看到这些题目原创 2021-01-05 14:52:37 · 1493 阅读 · 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 · 122 阅读 · 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 · 670 阅读 · 0 评论 -
LeetCode刷题--5. 最长回文子串
题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"...原创 2020-09-22 20:38:32 · 174 阅读 · 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 · 122 阅读 · 0 评论 -
LeetCode刷题——3.无重复字符的最长子串
问题描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为...原创 2019-12-31 15:57:24 · 94 阅读 · 0 评论 -
LeetCode刷题——2.两数之和
问题描述:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> ...原创 2019-12-31 15:29:20 · 143 阅读 · 0 评论 -
LeetCode刷题——1.两数之和
从今天开始正式整理自己的博客文档,算作正式踏入软件行业的里程碑。每天坚持写3道算法题,并坚持更新学到的各类模型,持之以恒,在毕业之前定当有所收获。主要也是为了今后参加各种面试招聘,总结经验。问题描述:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组...原创 2019-12-31 14:57:35 · 129 阅读 · 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 · 322 阅读 · 0 评论