08 2019 档案

摘要:题目描述: 在二维平面上,我们将石头放置在一些整数坐标点上。每个坐标点上最多只能有一块石头。 现在,move 操作将会移除与网格上的某一块石头共享一列或一行的一块石头。 我们最多能执行多少次 move 操作? 示例 1: 输入:stones = [[0,0],[0,1],[1,0],[1,2],[2 阅读全文
posted @ 2019-08-30 23:48 Fzu_LJ 阅读(563) 评论(0) 推荐(0)
摘要:题目描述: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2. 思路分析: 一开始的思路 阅读全文
posted @ 2019-08-30 16:51 Fzu_LJ 阅读(193) 评论(0) 推荐(0)
摘要:题目描述: 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度是以它们之 阅读全文
posted @ 2019-08-30 16:35 Fzu_LJ 阅读(160) 评论(0) 推荐(0)
摘要:题目描述: 给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。 返回森林中的每棵树。你可以按任意顺序组织答案。 示例: 提示: 树中的节点数最大为 1000。每个节点都有一个 阅读全文
posted @ 2019-08-30 15:18 Fzu_LJ 阅读(320) 评论(0) 推荐(0)
摘要:题目描述: 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例 1: 输入: S = "ababcbacadefegdehijhklij"输出: [9,7,8]解释:划分结果为 "ababcbaca" 阅读全文
posted @ 2019-08-29 14:05 Fzu_LJ 阅读(351) 评论(0) 推荐(0)
摘要:题目描述: 给定三角形周长p,求满足边长为整数且周长为p的直角三角形个数。 思路分析: 枚举的思想。首先想到就是利用一个双重循环: 但这样是会超时的,通过数学方式做分析: i+j+k=p, 0<i<=j<k, 通过解不等式,可以得到:i<p/3, j<p/2。 在双重循环的基础上,做限制,能够通过, 阅读全文
posted @ 2019-08-28 22:08 Fzu_LJ 阅读(2228) 评论(0) 推荐(0)
摘要:题目描述: 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫 阅读全文
posted @ 2019-08-28 16:53 Fzu_LJ 阅读(189) 评论(0) 推荐(0)
摘要:题目描述: 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示例 1: 输入: nums: [1, 1, 1 阅读全文
posted @ 2019-08-28 15:34 Fzu_LJ 阅读(256) 评论(0) 推荐(0)
摘要:题目描述: 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的 阅读全文
posted @ 2019-08-28 13:43 Fzu_LJ 阅读(232) 评论(0) 推荐(0)
摘要:题目描述: 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入:[100, 4, 200, 1, 3, 2] 输出:4 即最长的连续序列为 [1,2,3,4] 思路分析: 由于要求O(n)的复杂读,因此直接排序是不可行的。 这里用到的是并查集的思想。 阅读全文
posted @ 2019-08-22 22:15 Fzu_LJ 阅读(732) 评论(0) 推荐(0)
摘要:链表快排是在面试中比较容易遇到的问题。这里介绍其两种解法。 解法一: 基于值的交换法。由于对于链表结点的交换,涉及到指针的操作,比较复杂。所以首先先到不改变结点,而改变结点中的值。 通常我们的快排是基于partition的思想进行,通过一次partition,将数组分为两部分,左半部分均小于枢纽元素 阅读全文
posted @ 2019-08-20 21:51 Fzu_LJ 阅读(2044) 评论(0) 推荐(0)
摘要:题目描述: 亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。 游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。 亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止 阅读全文
posted @ 2019-08-16 17:42 Fzu_LJ 阅读(228) 评论(0) 推荐(0)
摘要:题目描述: 给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。 输入: 3输出:[ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉 阅读全文
posted @ 2019-08-10 16:20 Fzu_LJ 阅读(239) 评论(0) 推荐(0)
摘要:题目描述: 已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 0 开始。即最左上角的格子记为 (0, 0),最右下角的记为 (N-1, N-1)。 现有一个 “马”(也译作 “骑士”)位于 (r, c) ,并打算进行 K 次移动。 如下图所示,国际象棋的 “马” 每一步先沿水平或垂直方向移动 阅读全文
posted @ 2019-08-08 19:43 Fzu_LJ 阅读(396) 评论(0) 推荐(0)
摘要:题目描述: 给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 思路分析: 这题是之前那道最大正方形的进阶,同样是利用dp来求解。通过逐行去计算最大矩形,即优化的子结构是当前行的最大矩形,从1行到2行,最后到n行。需要利用三个数组来求矩形面积,首先是h,表示当前 阅读全文
posted @ 2019-08-08 19:32 Fzu_LJ 阅读(370) 评论(0) 推荐(0)
摘要:题目描述: 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 思路分析: 一道动态规划的题。由于是正方形,首先单一的‘1’即为最小的正方形,接下来需要考察其外围区域是否为1。具体来说,dp[i][j]表示包含该点的最大正方形的边长。同时不断去更新这个最大边长。这里 阅读全文
posted @ 2019-08-08 19:17 Fzu_LJ 阅读(231) 评论(0) 推荐(0)
摘要:题目描述: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求 阅读全文
posted @ 2019-08-07 20:14 Fzu_LJ 阅读(192) 评论(0) 推荐(0)
摘要:题目描述: 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 解题思路: 树的题直接想到用递归求解,由于需要数组长度大的考前,用dfs。同时注意, 阅读全文
posted @ 2019-08-05 21:36 Fzu_LJ 阅读(147) 评论(0) 推荐(0)