
算法
长风o
本博客为编程学习记录之用,同时方便自己总结和他人借鉴。如有不当之处请联系本人。
展开
-
Lintcode 最小子串覆盖
给定一个字符串source和一个目标字符串target,在字符串source中找到包括所有目标字符串字母的子串。说明在答案的子串中的字母在目标字符串中是否需要具有相同的顺序?——不需要。样例给出source = "ADOBECODEBANC",target = "ABC" 满足要求的解 "BANC" 思路:该题使用的是原创 2017-03-16 21:21:56 · 3964 阅读 · 0 评论 -
[编程题] 二叉树
时间限制:3秒空间限制:32768K有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。给定二叉树的根节点root,请返回所求距离。强调一点:我就是被卡在这很久的:不是所有节点中的最大最小值原创 2018-03-27 00:05:22 · 770 阅读 · 0 评论 -
C++记录精确时间-QueryPerformanceFrequency()
精确获取时间QueryPerformanceFrequency() - 基本介绍类型:Win32API原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);作用:返回硬件支持的高精度计数器的频率。返回值:非零,硬件支持高精度计数器;零,硬件不支持,读取失败。QueryPerform转载 2017-05-05 22:37:39 · 1796 阅读 · 0 评论 -
lintcode 第12题
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。原创 2017-01-16 09:50:36 · 425 阅读 · 0 评论 -
白话经典算法系列之六 快速排序 快速搞定
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序转载 2017-04-05 10:45:44 · 379 阅读 · 0 评论 -
LintCode 字符串查找
对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。您在真实的面试中是否遇到过这个题? Yes说明在面试中我是否需要实现KMP算法?不需要,当这种问题出现在面试中时,面试官很可能只是想要测试一下你的基础应用能力。原创 2017-03-16 22:40:14 · 561 阅读 · 0 评论 -
Lintcode 数组划分
给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。 注意事项你应该真正的划分数组 nums,而不仅仅只是计算比 k 小的整数数,如果数组 nums 中的所有元素都比 k 小,则返回 nums.原创 2017-03-16 21:35:37 · 475 阅读 · 0 评论 -
插入区间
给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。样例插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]。解答 这道题主要原创 2017-03-15 22:16:30 · 311 阅读 · 0 评论 -
二叉树的前中后序遍历,递归和非递归方式
解决二叉树的很多问题的方案都是基于对二叉树的遍历。遍历二叉树的前序,中序,后序三大方法算是计算机科班学生必写代码了。其递归遍历是人人都能信手拈来,可是在手生时写出非递归遍历恐非易事。正因为并非易事,所以网上出现无数的介绍二叉树非递归遍历方法的文章。可是大家需要的真是那些非递归遍历代码和讲述吗?代码早在学数据结构时就看懂了,理解了,可为什么我们一而再再而三地忘记非递归遍历方法,却始终记住了递归遍历方转载 2017-04-10 19:34:35 · 3822 阅读 · 1 评论 -
搜索二维矩阵
搜索二维矩阵写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数大于上一行的最后一个整数。class Solution {public: /** * @param matrix, a list of lists of integers * @param tar原创 2017-03-13 22:52:07 · 407 阅读 · 0 评论 -
十大经典排序算法(动图演示)
十大经典排序算法(动图演示)0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间转载 2018-04-10 22:19:08 · 3798 阅读 · 4 评论