Excaliburer`s Zone

It was challenging, but not risky.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  刷题&&LeetCode

1 2 3 下一页

主要是刷题心得
摘要:1.利用堆找出最大的K个数 首先,先理解下用堆找出最大的K个数的常用解法,例如问题是“从M(M <= 10000)个数中找出最大的K个数” (1)利用最大堆 建立一个N=M大小的大顶堆,然后输出根节点之后,将根节点删除,然后再将剩余的元素调整成大顶堆;依次重复K次这个过程,最终就找出了K个最大的数。 阅读全文
posted @ 2019-03-25 12:58 Excaliburer 阅读(964) 评论(0) 推荐(1)

摘要:一.题目链接: https://leetcode.com/problems/letter-combinations-of-a-phone-number/ 二.题目大意: 给定一段数字字符串,其中每个数字字符对应了如下的字母字符,求出输入字符串对应的所有可能的字母字符串集合。 例如,输入数字字符串"2 阅读全文
posted @ 2018-12-11 16:06 Excaliburer 阅读(216) 评论(0) 推荐(0)

摘要:一.题目链接: https://leetcode.com/problems/find-median-from-data-stream 二.题目大意: 给定一段数据流,要求求出数据流中的中位数,其中数据流是动态变化的。如果数据流中的数字个数是奇数的话,则中位数是中间位置的数字;如果数据流中的数字是偶数 阅读全文
posted @ 2018-08-14 19:56 Excaliburer 阅读(284) 评论(0) 推荐(0)

摘要:一.题目链接: https://leetcode.com/problems/find-peak-element/ 二.题目大意: 给定一个长度为N的一维数组,数组是无序的,要求找到数组中的极大值(或局部最大值),并返回该极大值的下标,并假设 nums[-1] = nums[n] = -∞.;当某元素 阅读全文
posted @ 2018-08-09 13:11 Excaliburer 阅读(194) 评论(0) 推荐(0)

摘要:一.题目链接:https://leetcode.com/problems/knight-probability-in-chessboard/ 二.题目大意: 给定一个N*N的棋盘和一个初始坐标值(r,c),开始时骑士在初始坐标处,骑士会进行移动,并且骑士移动的时候这只能按照如下的移动方式: 即一共有 阅读全文
posted @ 2018-08-02 15:18 Excaliburer 阅读(697) 评论(0) 推荐(0)

摘要:一 题目描述 在一个排序矩阵中找从小到大的第 k 个整数。 排序矩阵的定义为:每一行递增,每一列也递增。 二 题解 由于排序矩阵中的每一行都是递增的,并且每一列都是递增的。从小到大第k个数,实际上就是第k小的数。思路如下: 假设排序矩阵共有row行和col列,由于每行是递增的,我们只要选择出每行的最 阅读全文
posted @ 2018-07-30 00:20 Excaliburer 阅读(1424) 评论(0) 推荐(0)

摘要:一.题目描述 把n个骰子仍在地上,所有的骰子朝上的一面的点数之和为s,输入n,打印出s所有可能的值出现的概率。 二.题解 《剑指offer》上给出的两种方法,尤其是代码,晦涩难懂且没有注释。而n个骰子的问题实质就是一个动态规划问题,所以文本主要从动态规划的角度来求解这个问题。首先该问题具备DP的两个 阅读全文
posted @ 2018-07-27 20:05 Excaliburer 阅读(2588) 评论(2) 推荐(2)

摘要:一.题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句 (即三元运算符,A? B : C) 二.题解 虽然求和问题本身很容易,但加上这么多限制条件的话,整个问题似乎就不那么简单了。《剑指offer》虽然给出了四种 阅读全文
posted @ 2018-07-26 20:27 Excaliburer 阅读(803) 评论(0) 推荐(0)

摘要:一.最长公共子序列问题(LCS问题) 给定两个字符串A和B,长度分别为m和n,要求找出它们最长的公共子序列,并返回其长度。例如: A = "HelloWorld" B = "loop" 则A与B的最长公共子序列为 "loo",返回的长度为3。此处只给出动态规划的解法:定义子问题dp[i][j]为字符 阅读全文
posted @ 2018-07-21 16:23 Excaliburer 阅读(17037) 评论(1) 推荐(2)

摘要:一.题目链接:https://leetcode.com/problems/longest-increasing-subsequence/ 二.题目大意: 给定一个没有排序的数组,要求从该数组中找到一个最长的递增子序列,并返回其长度。(递增子序列可以是不连续的) 注:子序列和子字符串或者连续子集的不同 阅读全文
posted @ 2018-07-20 15:07 Excaliburer 阅读(298) 评论(0) 推荐(0)

摘要:1.0-1背包的朴素形式 0-1背包问题:给定编号为1,2...n的n个物品和一个容量为C的背包;每个物品的重量为$w_i$,每个物品的价值为$v_i$,求将物品装入背包后,背包能获得的最大价值。其状态转移方程为: $$ dp[i][j] = \begin{cases} \max\{dp[i-1][ 阅读全文
posted @ 2018-07-19 15:49 Excaliburer 阅读(337) 评论(0) 推荐(1)

摘要:一.题目链接:https://leetcode.com/problems/minimum-window-substring/ 二.题目大意: 给定两个字符串S和T,要求从S中找出包含T中所有字母的最短子串,同时要求时间复杂度为O(n)。 三.题解: 这道看上去和https://leetcode.co 阅读全文
posted @ 2018-07-18 17:35 Excaliburer 阅读(353) 评论(0) 推荐(0)

摘要:本文主要针对如何判断有向图/无向图中是否存在环的问题进行简单的论述。 一 无向图 1.利用DFS进行判断 利用DFS判断有向图是否存在环,是最为常用的一种方法,虽然这种方法很常用,但可参考的代码的实现比较少,下面对这种方法及其实现进行详细的阐述。 首先,利用DFS判断无向图中是否换的原理是:若在深度 阅读全文
posted @ 2018-07-16 21:15 Excaliburer 阅读(23803) 评论(0) 推荐(2)

摘要:一 综述 Dijkstra算法(迪杰斯特拉算法)主要是用于求解有向图中单源最短路径问题。其本质是基于贪心策略的(具体见下文)。其基本原理如下: (1)初始化:集合vertex_set初始为{source_vertex},dist数组初始值为$dist[i] = G.arc[source\_verte 阅读全文
posted @ 2018-07-11 22:47 Excaliburer 阅读(1734) 评论(0) 推荐(0)

摘要:首先,这里的图不是指的我们一般所说的图结构,而是大小为M*N的矩形区域(也可以看成是一个矩阵)。而关于矩形区域的遍历问题经常出现,如“寻找矩阵中的路径”、“找到矩形区域的某个特殊点”等等之类的题目,在笔试的编程题中经常会出现。下面就这种类型的问题给出一个较为通用的模板: 利用深度优先搜索(DFS) 阅读全文
posted @ 2018-07-09 21:56 Excaliburer 阅读(1124) 评论(0) 推荐(1)

摘要:关于图的遍历,通常有深度优先搜索(DFS)和广度优先搜索(BFS),本文结合一般的图结构(邻接矩阵和邻接表),给出两种遍历算法的模板 1.深度优先搜索(DFS) 关于这个模板,有几点需要注意的: (1)此处的模板适用于以邻接表表示的图结构或者以邻接矩阵表示的图结构,若以邻接表表示的话,时间复杂度为O 阅读全文
posted @ 2018-07-09 20:12 Excaliburer 阅读(2662) 评论(0) 推荐(2)

摘要:一 问题描述 约瑟夫环问题的基本描述如下:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,要求找到最后一个出列的人或者模拟这个过程。 二 问题解法 在解决这个问题之前,首 阅读全文
posted @ 2018-07-07 22:55 Excaliburer 阅读(4502) 评论(0) 推荐(0)

摘要:一 稀疏矩阵的存储 1.三元组顺序表 三元组表示法就是在存储非零元的同时,存储该元素所对应的行下标和列下标。稀疏矩阵中的每一个非零元素由一个三元组(i,j,aij)唯一确定。矩阵中所有非零元素存放在由三元组组成的顺序表中(通常用数组)。所以三元组的逻辑结构如下: 注意,此处的非零元素的三元组是以行序 阅读全文
posted @ 2018-07-05 13:08 Excaliburer 阅读(9635) 评论(0) 推荐(0)

摘要:一.题目大意 输入一颗二叉树,判断该二叉树是否为平衡二叉树(AVL树)。 二.题解 《剑指offer》上给出了两种解决方式: 1.第一种是从根节点开始,从上往下遍历每个子节点并计算以子节点为根节点的子树的高度,通过判断左右子树的高度差是否大于1来判断是否为AVL树。其中计算子树的高度,利用了Tree 阅读全文
posted @ 2018-06-26 21:00 Excaliburer 阅读(310) 评论(0) 推荐(0)

摘要:一.题目链接:https://leetcode.com/problems/4sum/ 二.题目大意: 给定一个数组A和一个目标值target,要求从数组A中找出4个数来使之构成一个4元祖,使得这四个数的和等于target,找出所有的四元组,当然这些四元组不能有重复的。 三.题解: 这道题实质就是3s 阅读全文
posted @ 2018-05-24 12:48 Excaliburer 阅读(153) 评论(0) 推荐(0)

1 2 3 下一页