算法
文章平均质量分 69
耀凯考前突击大师
路漫漫其修远兮,吾将上下而求索。
展开
-
Java中取得数组中最大(小)元素的几种实现方法
简介本篇文章将主要介绍获取数组中最大(小)元素的基本方法,以及其在Java中的几种实现方法。算法取得数组中最大(小)元素的基本算法一般都类似于如下所示:SET MAX to array[0]FOR i = 1 to array.length - 1 IF array[i] > MAX THEN SET MAX to array[i] ENDIFE...原创 2019-06-30 09:14:20 · 2218 阅读 · 0 评论 -
LeetCode681. Next Closest Time
681. Next Closest Time原创 2017-10-01 06:25:31 · 1648 阅读 · 0 评论 -
LeetCode543. Diameter of Binary Tree
Leetcode543. Diameter of Binary Tree原创 2017-10-09 15:34:10 · 464 阅读 · 0 评论 -
LeetCode678. Valid Parenthesis String
678. Valid Parenthesis String原创 2017-09-29 13:21:21 · 698 阅读 · 0 评论 -
Leetcode407. Trapping Rain Water II
Leetcode407. Trapping Rain Water II原创 2017-09-21 03:53:16 · 490 阅读 · 0 评论 -
LeetCode677. Map Sum Pairs
LeetCode677. Map Sum Pairs原创 2017-09-28 16:14:37 · 475 阅读 · 0 评论 -
Google OA题目:给出使得字符串B成为字符串A重复自己构成的字符串的子字符串,字符串A最少需重复的次数
Google OA题目:给出使得字符串B成为字符串A重复自己构成的字符串的子字符串,字符串A最少需重复的次数原创 2017-09-12 06:49:38 · 2480 阅读 · 0 评论 -
Simulate Rate limit process based on webserver logs
RateLimiter原创 2017-09-19 08:27:03 · 611 阅读 · 0 评论 -
n个人从m个啤酒龙头接啤酒,需要多久接完?
题目 酒馆里酒馆里有m个龙头可供顾客们接啤酒,每个龙头每秒的出酒量相等,都是1。现有n名顾客准备接酒,他们初始的接酒顺序已经确定。将这些顾客按接酒顺序从1到n编号,i号顾客的接酒量为w[i]。需多久全部用户都能接完?原创 2017-09-17 10:51:06 · 1104 阅读 · 0 评论 -
LeetCode148. Sort List
LeetCode148. Sort List原创 2017-09-25 11:44:28 · 316 阅读 · 0 评论 -
约瑟夫环报数,直到剩下k-1人停止
题目 有n个囚犯围成一圈从1到n编号,并从1开始报数。每当报到k,这个囚犯就会被执行死刑。接着从下一个人开始,剩下的囚犯继续从1开始报数并重复这个过程。直到所有囚犯的数目加起来小于k。问给定n和k,初始站在什么位置的囚犯能活下来?原创 2017-09-17 07:23:48 · 1048 阅读 · 0 评论 -
找出字符串中的最长连续数字子串
给出一个字符串作为输入,找出其中最长的连续数字串并返回其长度和起始index。原创 2017-09-16 02:33:38 · 7545 阅读 · 1 评论 -
Amazon面试题 实现有符号整数的二进制表示法
实现有符号整数的二进制表示法。或者说,实现java.lang.Integer.toBinaryString()方法。要想实现有符号整数的二进制表示法,我们首先需要知道有符号整数在计算机中是怎么存储的。计算机中存储有符号整数,使用的是补码(two’s complement)。正数的补码同原码(其二进制表示)相同。负数的补码是其绝对值的原码按位取反(反码,one’s complement)后再加一。因原创 2017-08-07 07:28:08 · 835 阅读 · 0 评论 -
[Leetcode]295. Find Median from Data Stream
Leetcode 295. Find Median from Data Stream原创 2017-08-06 07:26:26 · 736 阅读 · 0 评论 -
LeetCode673. Number of Longest Increasing Subsequence
673. Number of Longest Increasing Subsequence原创 2017-10-02 05:01:53 · 719 阅读 · 0 评论 -
LeetCode341. Flatten Nested List Iterator
LeetCode341. Flatten Nested List Iterator原创 2017-10-10 16:10:18 · 586 阅读 · 0 评论 -
深入解析基数排序(Radix sort)——线性时间排序算法
简介众所周知,常见的排序算法例如快速排序,归并排序等都是基于比较的排序算法。正是因为它们基于比较的特性,这些算法在时间复杂度方面无法做到比O(n*logn)更好。关于这些排序算法的细节在本文中不做讨论,请参考作者之前的一篇文章搜索和排序算法总结。早在1887年,基数排序算法就已经由Herman Hollerith提出,用来解决编表机上的数字排序问题。它实际上是最早被提出的排序算法。基数排序是...原创 2019-07-02 08:25:04 · 2059 阅读 · 0 评论 -
深入解析Bellman Ford's Algorithm,高效解决含有负权重图中的最短路径问题
概述Bellman Ford算法可以用来解决加权图中的最短路径问题。其与Dijkstra算法的区别在于Belllman Ford算法的应用范围更广,例如其可以用来处理带有负权重的加权图中的最短路径问题。由于Dijkstra算法本质上是一种贪心算法,因而当图中存在路径权值之和为负的环时,Dijkstra算法会给出错误的结果因为其总是偏向于选择当前情况下的局部最优路径。Bellman Ford算法的...原创 2019-03-18 16:48:39 · 2193 阅读 · 1 评论 -
Next Permutation Algorithm,取得全排列中当前排列的下一个排列
Next Permutation算法给定一个整数数组,数组中的每一个元素均为0~9之间的整数,如下算法能够高效取得在该数组按数字从小到大排列的全排列中的下一个排列。给定一个任意整数数字,该算法亦可以用来找到仅使用该整数中的数字重构能够得到的 最小的 比当前数字大的数字。假定输入数组为nums。找出当前数组中的 第一个 满足nums[k] < nums[k + 1]条件的索引k。如果满...原创 2019-03-21 16:59:56 · 441 阅读 · 0 评论 -
深入理解拓扑排序(Topological sort)
什么是拓扑排序?维基百科对于拓扑排序有如下定义: a topological sort or topological ordering of a directed graph is a linear ordering of its vertices such that for every directed edge uv from vertex u to vertex v, u com...原创 2018-03-28 08:31:20 · 2978 阅读 · 0 评论 -
深入解析Dijkstra's Algorithm —— 高效解决有向图中的单点出发最短路径问题
什么是Dijkstra算法?Dijkstra算法是用来寻找最短路径最著名的算法之一。具体来说,Dijkstra算法主要用来寻找一个边的权值不为负的有向图中的任意一点到其他任意结点(在两点相互联通的情况下)之间的最小路径。如果利用Dijkstra算法找出从一点出发,到图中其他所有点的最短路径,事实上我们就构造出了一个最短路径树(shortest-path tree)。Dijkstra最短路径...原创 2018-04-10 11:14:50 · 5320 阅读 · 0 评论 -
线段树(segment tree),看这一篇就够了
定义线段树(segment tree),顾名思义, 是用来存放给定区间(segment, or interval)内对应信息的一种数据结构。与树状数组(binary indexed tree)相似,线段树也用来处理数组相应的区间查询(range query)和元素更新(update)操作。与树状数组不同的是,线段树不止可以适用于区间求和的查询,也可以进行区间最大值,区间最小值(Range Mi...原创 2018-03-18 13:10:49 · 53851 阅读 · 6 评论 -
树状数组(Binary Indexed Tree),看这一篇就够了
定义根据维基百科的定义: A Fenwick tree or binary indexed tree is a data structure that can efficiently update elements and calculate prefix sums in a table of numbers.也就是说,所谓树状数组,或称Binary Indexed Tree,...原创 2018-03-09 07:17:35 · 53685 阅读 · 6 评论 -
[数据结构]二叉树及其遍历
二叉树Keyword二叉树的概念,特性及二叉树的前序(pre-order traversal),中序(in-order traversal),后序(post-order traversal)遍历以及广度优先遍历(Breadth First Search),深度优先遍历(Depth First Search),二叉树的Morris遍历。二叉树的基本概念二叉树就是每个节点最原创 2016-06-08 20:34:56 · 3724 阅读 · 0 评论 -
并查集(Union-Find Algorithm),看这一篇就够了
动态连接(Dynamic connectivity)的问题所谓的动态连接问题是指在一组可能相互连接也可能相互没有连接的对象中,判断给定的两个对象是否联通的一类问题。这类问题可以有如下抽象:有一组构成不相交集合的对象 union: 联通两个对象 find: 返回两个对象之间是否存在一条联通的通路 ˇ 在使用union-find处理动态连接的问题时,我们一般将这一组对象抽象...原创 2017-12-25 07:30:07 · 33337 阅读 · 4 评论 -
水塘抽样 Reservoir sampling
水塘抽样 Reservoir sampling原创 2017-12-20 10:52:20 · 1550 阅读 · 0 评论 -
LeetCode689. Maximum Sum of 3 Non-Overlapping Subarrays
LeetCode689. Maximum Sum of 3 Non-Overlapping Subarrays原创 2017-10-16 13:27:00 · 2027 阅读 · 0 评论 -
LeetCode636. Exclusive Time of Functions
636. Exclusive Time of Functions原创 2017-10-13 16:37:25 · 465 阅读 · 0 评论 -
LeetCode653. Two Sum IV - Input is a BST
Leetcode 653. Two Sum IV - Input is a BST原创 2017-10-04 15:43:54 · 519 阅读 · 0 评论 -
Trie(字典树)的Java实现
Trie(字典树,单词查找树)的java实现。原创 2017-08-04 13:14:55 · 1870 阅读 · 0 评论 -
二叉搜索树的插入和删除结点操作以及iterator的构造
本文总结了二叉搜索树的插入和删除以及DFS遍历iterator的构造操作并给出了相应的java代码原创 2016-07-23 14:44:55 · 638 阅读 · 0 评论 -
[Leetcode]617. Merge Two Binary Trees
[Leetcode]617. Merge Two Binary Trees原创 2017-06-18 11:00:51 · 1498 阅读 · 0 评论 -
Facebook面试题 check for subText in input text's subarray.
This question is a follow up for question for Suffix array sorting. Based on the output of last question, we are given an input array int[] substext. We want to check for the existance of this subTex原创 2017-01-03 09:23:27 · 388 阅读 · 0 评论 -
Facebook面试题 Suffix array sorting
Given a suffix array. E.g. int[] text = {10, 20, 30, 25}, then suffix[0] = {10, 20, 30, 25}, suffix[1] = {20, 30, 25}, succix[2] = {30, 25}, suffix[3] = {25}. Then sort those arrays using lexical orde原创 2017-01-02 13:37:39 · 795 阅读 · 0 评论 -
排序和搜索算法总结
搜索及排序算法的总结原创 2016-10-20 10:17:00 · 706 阅读 · 0 评论 -
[leetcode] 310.Minimum Height Trees
leetcode 310.Minimum Height Trees原创 2016-07-28 06:13:31 · 631 阅读 · 0 评论 -
[leetcode]95. Unique Binary Search Trees II
题目链接:95. Unique Binary Search Trees IIGiven an integer n, generate all structurally unique BST’s (binary search trees) that store values 1…n.原创 2016-07-13 15:09:15 · 540 阅读 · 0 评论 -
[leetcode]189. Rotate Array
题目链接:189. Rotate Array Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. Hints: Could you do it in-p原创 2016-07-01 03:55:18 · 424 阅读 · 0 评论 -
[leetcode]111.Minimum Depth of Binary Tree
111. Minimum Depth of Binary TreeGiven a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.题目链接:111原创 2016-05-31 16:23:30 · 637 阅读 · 0 评论 -
[leetcode]114. Flatten Binary Tree to Linked List
题目链接:114. Flatten Binary Tree to Linked List Given a binary tree, flatten it to a linked list in-place. Hints: If you notice carefully in the flattened tree, each node’s right child points to the ne原创 2016-06-12 17:40:52 · 630 阅读 · 0 评论