自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 is-graph-bipartite

题目链接:is-graph-bipartite题目描述给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。...

2019-08-31 12:40:41 239

原创 find-eventual-safe-states

题目链接:find-eventual-safe-states题目描述在有向图中, 我们从某个节点和每个转向处开始, 沿着图的有向边走。 如果我们到达的节点是终点 (即它没有连出的有向边), 我们停止。现在, 如果我们最后能走到终点,那么我们的起始节点是最终安全的。 更具体地说, 存在一个自然数 K, 无论选择从哪里开始行走, 我们走了不到 K 步后必能停止在一个终点。哪些节点最终是安全的? ...

2019-08-24 12:48:31 162

原创 decode-string

题目链接:decode-string题目描述给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k...

2019-08-18 11:55:13 163

原创 loud-and-rich

题目链接:loud-and-rich题目描述在一组 N 个人(编号为 0, 1, 2, …, N-1)中,每个人都有不同数目的钱,以及不同程度的安静(quietness)。为了方便起见,我们将编号为 x 的人简称为 "person x "。如果能够肯定 person x 比 person y 更有钱的话,我们会说 richer[i] = [x, y] 。注意 richer 可能只是有效观察的一...

2019-08-17 14:01:10 108

原创 house-robber-iii

题目链接:house-robber-iii题目描述在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗...

2019-08-17 14:00:40 274

原创 二叉树中所有距离为 K 的结点

题目链接:all-nodes-distance-k-in-binary-tree题目描述给定一个二叉树(具有根结点 root), 一个目标结点 target ,和一个整数值 K 。返回到目标结点 target 距离为 K 的所有结点的值的列表。 答案可以以任何顺序返回。题目分析距离给定节点距离为K的节点有两种情况:第一种是他的子节点,这种情况比较容易通过遍历得到。第二种是他的祖先节点的其...

2019-08-10 12:35:00 337

原创 大礼包

题目链接:shopping-offers题目描述在LeetCode商店中, 有许多在售的物品。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。现给定每个物品的价格,每个大礼包包含物品的清单,以及待购物品清单。请输出确切完成待购清单的最低花费。每个大礼包的由一个数组中的一组数据描述,最后一个数字代表大礼包的价格,其他数字分别表示内含的其他种类物品的数量。任意大礼包可无限次购买。说...

2019-08-04 12:24:22 163

原创 金字塔转换矩阵

题目链接:pyramid-transition-matrix题目描述现在,我们用一些方块来堆砌一个金字塔。 每个方块用仅包含一个字母的字符串表示,例如 “Z”。使用三元组表示金字塔的堆砌规则如下:(A, B, C) 表示,“C”为顶层方块,方块“A”、“B”分别作为方块“C”下一层的的左、右子块。当且仅当(A, B, C)是被允许的三元组,我们才可以将其堆砌上。初始时,给定金字塔的基层 bot...

2019-08-03 13:14:11 291

原创 朋友圈

题目链接:friend-circles题目描述班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。...

2019-07-27 12:59:44 119

原创 扫雷游戏

题目链接:minesweeper题目描述让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷,‘E’ 代表一个未挖出的空方块,‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字(‘1’ 到 ‘8’)表示有多少地雷与这块已挖出的方块相邻,‘X’ 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中(‘M’或者’E’)的下一...

2019-07-27 12:58:46 109

原创 移除最多的同行或同列石头

题目链接:most-stones-removed-with-same-row-or-column题目描述在二维平面上,我们将石头放置在一些整数坐标点上。每个坐标点上最多只能有一块石头。现在,move 操作将会移除与网格上的某一块石头共享一列或一行的一块石头。我们最多能执行多少次 move 操作?题目分析刚开始看到这道题目的时候,一脸蒙蔽,不是很明白最多move操作的意思,然后把示例画成二...

2019-07-13 12:54:36 147

原创 飞地的数量

题目链接:number-of-enclaves题目描述给出一个二维数组 A,每个单元格为 0(代表海)或 1(代表陆地)。移动是指在陆地上从一个地方走到另一个地方(朝四个方向之一)或离开网格的边界。返回网格中无法在任意次数的移动中离开网格边界的陆地单元格的数量。题目分析这道题其实和leetcode上岛屿的数量那道题目很类似,不同点在于连接到边界的岛屿不计入数量,并且这里要计算的是岛屿的面...

2019-07-06 16:32:11 180

原创 在二叉树中分配硬币

题目链接:distribute-coins-in-binary-tree题目描述给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。)。返回使每个结点上只有一枚硬币所需的移动次数...

2019-07-01 12:57:32 272

原创 由斜杠划分区域

题目链接:regions-cut-by-slashes题目描述在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此 \ 用 “\” 表示。)。返回区域的数目。题目分析该题目用用图来表示的话,一目了然。可是表示成了字符串之后,就感觉有点不知从何处下手。想办法将图...

2019-07-01 12:54:54 409

原创 java非捕获组-肯定式向前查找(?=)和肯定式向后查找(?<=)

java正则表达式非捕获组

2017-08-26 09:47:30 376 1

原创 java,动态规划,算法导论之钢条切割(O(n)时间渐进性)

动态规划总结:动态规划用于处理具有最优子结构,子问题重叠且互不相关的情况。由于子问题有所重叠,故此,为节省运行时间,每个子问题只求一次,通过“自顶向下带备忘录法”或“自底向上迭代法”来记录和应用已求得结果的子问题。能把递归结构次数从指数次降低到多项数次,使问题能快速求解。动态规划和分治法把大问题化成小问题思想有点类似,却又有不同,分治法的子问题没有重叠。思想步骤:1、分析最优子结构

2017-03-04 12:55:39 576

原创 java双向循环链表分析及其实现

ArrayList和LinkedList比较分析:1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。4.Arra

2017-02-26 16:12:46 1381

原创 java实现最大堆及代码测试

算法分析:堆排序和归并排序一样,实践时间复杂度是O(nlgn),不同于归并排序的是,堆排序是一种原址排序。本文介绍最大堆。代码中关键操作:maxHepify:时间复杂度是O(lgn),是维护堆性质的关键。buildMaxHeap:建立最大堆,时间复杂度是O(n);heapSort:通过调用exactMax,按顺序得到一个排序的数组,时间复杂度是O(nlgn);insert:

2017-02-23 20:36:16 360

原创 java实现分治法,求平面内最近点对

算法分析:方法一:穷举1)算法描述:已知集合S中有n个点,一共可以组成n(n-1)/2对点对,蛮力法就是对这n(n-1)/2对点对逐对进行距离计算,通过循环求得点集中的最近点对2)算法时间复杂度:算法一共要执行 n(n-1)/2次循环,因此算法复杂度为O(n2)代码实现:利用两个for循环可实现所有点的配对,每次配对算出距离然后更新最短距离.方法二:分治   在二维

2017-02-21 14:46:56 4678 1

原创 java归并排序及实现

归并排序:归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,归并排序将两个已排序的表合并成一个表。  归并排序基本思想设两个有序的子序列(相当于输入序列)放在同一序列中相邻的位置上:array[low..m],array[m + 1..high],先将它们合并到一个局部的暂存序列

2017-02-21 11:41:49 500 1

30天自制操作系统 高清版

30天自制操作系统.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!

2017-11-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除